javascript - documentElement 没有子元素

标签 javascript xml internet-explorer cross-browser

var element = new DOMParser().parseFromString('<foo><bar></bar></foo>', 'application/xml').documentElement;
var children = element.children;
document.write('' + element);
document.write('' + children);

在 Chrome 和 Firefox 中,我看到“[object Element][object HTMLCollection]”。

但在 IE 9-11 中,我看到“[object Element]未定义”。

为什么documentElement没有子元素?

在 IE 9+(以及 Chrome 和 FF)中获取元素的所有子元素的最佳方法是什么?

最佳答案

我推荐的最直接的方法是在元素的子节点上使用Array.prototype.filter():

function getChildElements(element) {
     return Array.prototype.slice.call(element.childNodes)
     .filter(function (e) { return e.nodeType === 1; });
}

var childElements = getChildElements(element);

关于javascript - documentElement 没有子元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27360579/

相关文章:

Javascript/jQuery 在计时器后点击

android - ActionBar 在 Android KitKat 上不可见

java - 如何使用 ImageButton 从一个 fragment 更改为另一个 fragment ?

internet-explorer - IE9 收到 ETag 后伪造 304

css - 在移动或单击 map 之前,Leaflet 不会在 IE/Safari 中显示 Control.extend 数据

javascript - 按字母顺序对描述术语进行排序,并随之移动后面的 DOM 元素

javascript - 无法在 Canvas 上添加背景图像

javascript - 通过函数生成url后无法获取JSON

java - 从java中的XML文件中删除节点及其元素

html - 使用文本 anchor 和文本长度属性时,Internet Explorer 无法正确呈现 svg 文本