Javascript jQuery的问题';Internet Explorer 8中的s.find().length

Javascript jQuery的问题';Internet Explorer 8中的s.find().length,javascript,jquery,xml,internet-explorer-8,Javascript,Jquery,Xml,Internet Explorer 8,我在谷歌上搜索了一下,但我找不到解决这个问题的好办法。IE的开发工具在这方面也没有多大帮助 通过ajax返回的xml文档的代码在Safari、Chrome和Firefox中工作: $(data).find('Ticket').length; 例如,代码返回数字3 在Internet Explorer 8中,相同的代码返回0。为什么? 我毫不怀疑有一个简单的解释,涉及到a)IE怪癖或b)我的代码中的错误,其他浏览器可以原谅 尝试$(数据)。查找('ticket')。size()。这将返回与$(数

我在谷歌上搜索了一下,但我找不到解决这个问题的好办法。IE的开发工具在这方面也没有多大帮助

通过ajax返回的xml文档的代码在Safari、Chrome和Firefox中工作:

$(data).find('Ticket').length;
例如,代码返回数字3

在Internet Explorer 8中,相同的代码返回0。为什么?

我毫不怀疑有一个简单的解释,涉及到a)IE怪癖或b)我的代码中的错误,其他浏览器可以原谅

尝试
$(数据)。查找('ticket')。size()
。这将返回与
$(数据)相同的结果。查找('ticket')。长度
编辑:下一个答案

试一试


IE获取xml的方式与其他浏览器不同,firefox和chrome、alert($data)查看xml是否为空

find不能在IE中使用自定义标记(xml),除非构建activeX对象

假设变量“xml”是从您的请求返回的xml是什么

    var data;

    if ($.browser.msie) 
    {
       data = new ActiveXObject("Microsoft.XMLDOM");
       data.async = false;
       data.loadXML(xml);
    } 
    else 
    {
       data = xml;
    }
    //your code here
首先,
find()

无论如何,我今天遇到了这个问题,对我来说,它是由最初的ajax请求引起的:我使用了
数据类型:“html”
,而不是
数据类型:“xml”


这是一个愚蠢的错误,但值得检查

find
需要一个选择器,这是xml文档吗?您正在使用自定义标记吗?--浏览器部分支持,所有主要浏览器都支持length属性。@BoltClock和@Reiner Gerecke——是的,这是一个xml文档,Ticket是文档的一个元素。对不起,不清楚。我编辑了原始问题。@mu太短了——也返回0。谢谢你的建议。它返回的结果与.length:0相同。自从jQuery 1.8以来,建议使用length()而不是优秀的idea。我刚才试过了,但IE显示数据不是空的。它通过警报返回正确的xml。这非常有用。这不管用,但它让我找到了答案。非常感谢。我不知道为什么这对手术不起作用。对我来说,这非常有效,帮助我在几个小时的头撞墙后恢复了理智。
    var data;

    if ($.browser.msie) 
    {
       data = new ActiveXObject("Microsoft.XMLDOM");
       data.async = false;
       data.loadXML(xml);
    } 
    else 
    {
       data = xml;
    }
    //your code here