Javascript jQuery的问题';Internet Explorer 8中的s.find().length
我在谷歌上搜索了一下,但我找不到解决这个问题的好办法。IE的开发工具在这方面也没有多大帮助 通过ajax返回的xml文档的代码在Safari、Chrome和Firefox中工作: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()。这将返回与$(数
$(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