如何在IE7中遍历JQuery对象的DOM元素?

时间:2016-03-28 14:29:45

标签: jquery xml internet-explorer object

我有一个来自存储在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对象的内容?

1 个答案:

答案 0 :(得分:0)

找到另一种方法来实现这一点,这种方法更兼容跨浏览器并且更易于阅读。

.find()

.html()与xml字段的NodeNames一起使用可以更灵活地遍历响应。 .text()适用于Chrome和Firefox(可能是Edge),但较旧的IE需要sequelize/lib/associations/才能返回所需信息。

这对我有用,我能 if..else 的值为"描述"或者我想要附加功能的xml响应的任何其他参数。