我有一个来自存储在JQuery对象(称为$ xml)中的API请求的xml响应。为了获得我需要的一些信息,我正在使用:$xml[0].childNodes[0].childNodes[1].childNodes[1].textContent
。这适用于Chrome,Firefox和IE10 +,但IE =< 9不能以相同的方式表示对象。
适用于Chrome,Firefox和IE10 +的代码:
$(function() {
$.get('proxy.php', function(data) {
if (typeof data == 'string') {
console.error(data);
} else {
var test = $.parseXML(data);
var $xml = $(data);
console.log(data);
alert($xml[0].childNodes[0].childNodes[1].childNodes[1].textContent);
}
});
});
在IE的调试器中它显示对象数组的[0]索引 - 但是其他浏览器然后显示像'children'和'childNodes'这样的后代 - 低IE只显示0: [object]
,没有选项展开并查看所述[object]
内部。
如何以适用于IE7 +以及Chrome和Firefox的方式遍历我的JQuery对象的内容?
答案 0 :(得分:0)
找到另一种方法来实现这一点,这种方法更兼容跨浏览器并且更易于阅读。
.find()
将.html()
与xml字段的NodeNames一起使用可以更灵活地遍历响应。 .text()
适用于Chrome和Firefox(可能是Edge),但较旧的IE需要sequelize/lib/associations/
才能返回所需信息。
这对我有用,我能 if..else 的值为"描述"或者我想要附加功能的xml响应的任何其他参数。