2011-03-11 119 views
1

的Jquery来源:jQuery的.find()不返回数据.....在IE

 $.ajax({ 
       type: 'get' 
       , dataType: 'text' 
       , url: 'navigation.html' 
       , cache: false 
       , success: function(data, status){ 
        var xml; 
        if ($.browser.msie) { 
        xml = new ActiveXObject("Microsoft.XMLDOM"); 
        xml.async = false; 
        xml.loadXML(data); 
        } else { 
        xml = data; 
        } 

        $(xml).find('menu').each(function(){  
         if($(this).attr('level') =="0"){ 
       ............ 

这里navigation.html

<?xml version="1.0" encoding="utf-8" standalone="yes" ?>  
<navigation id="GNBContainer"> 
    <menu level="0" nodeId="STS2" parentId="0"> 
     <name> 
      Home 
     </name> 
     <a href="../index.htm"></a>      
     </menu> 

.find()不返回数据在IE 中,但在FF和Chrome navigation.html中,此文件扩展名不能更改。
navigation.html的Content-Type:text/html的也无法改变....
帮我.....

+0

页面是否为有效的XML(XHTML)? – mplungjan 2011-03-11 09:00:35

+0

'xml'的内容是什么? – JamesHalsall 2011-03-11 09:03:04

+0

此内容正用于顶层菜单。 – S4ngmin 2011-03-14 00:31:35

回答

0

不能或许使用一种变通方法,只需添加一个id到您的元素:

<menu id="mymenu" level="0" nodeId="STS2" parentId="0"> 

然后,你可以这样做:

$(xml).find('#mymenu').each(function() { 

如果您不能修改该文件,你可以做最后:

$(xml).find('#GNBContainer').children().each(function() { 

但是,您可能需要修改此更好地符合您的HTML结构。

+0

感谢您的回答。但$(xml).find('#GNBContainer')。children()。each(function(){does not work – S4ngmin 2011-03-11 09:35:17