Jquery .find()在IE中不返回数据.....

时间:2011-03-11 08:57:42

标签: javascript internet-explorer jquery

Jquery来源:

       $.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和铬 navigation.html,此文件扩展名无法更改 navigation.html Content-Type:text / html也无法更改....
帮助我......

1 个答案:

答案 0 :(得分:0)

您不能使用变通方法,只需在元素中添加id

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

然后你可以这样做:

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

如果您无法修改该文件,最终可以执行以下操作:

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

但您可能需要对此进行调整以更好地遵守HTML结构。