2011-03-11 67 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