我有一个带有以下XML的变量result
:
<Properties>
<Property>
<Name>Title</Name>
</Property>
</Properties>
然后我使用jQuery 1.4.3和each()
:
$('Property', result).each(function () {
var name = $('Name', this).text();
alert("Name: " + name);
});
出于某种原因,这个代码没有在IE8下启动,但它在Firefox 3.6和Chrome 7上工作正常。我试图找到这个案例的错误报告,但只发现旧版jQuery版本的问题。
有什么想法吗?
答案 0 :(得分:1)
这是由IE中的错误引起的:
if ((properties.length == 0) && (jQuery.browser.msie)) {
// IE screwing up
var xmlDoc = new ActiveXObject("Microsoft.XMLDOM");
xmlDoc.loadXML(result);
result = xmlDoc;
properties = $('Property', result);
}
properties.each(function () {
var name = $('Name', this).text();
alert("Name: " + name);
});
好消息 - 在IE9中不会发生这种情况。 (感谢this SO answer)。
答案 1 :(得分:1)
在IE中,xml字符串必须是对象,而其他浏览器允许字符串类型。
我有同样的问题,我用ajax获取xml数据,并且每次在IE8中都不起作用,直到我在ajax函数中添加数据类型:
$.get('http://url', {'a': 0, 'b': 1}, function(data) {), 'xml');
上述工作正常,但以下失败:
$.get('http://url', {'a': 0, 'b': 1}, function(data) {));
答案 2 :(得分:0)
为什么不使用jQuery.XSLT插件?它适用于jQuery工作的所有浏览器,我相信