编程语言
首页 > 编程语言> > 在IE8及以下版本中,Javascript“Node”未定义

在IE8及以下版本中,Javascript“Node”未定义

作者:互联网

我有以下代码似乎在除IE8及以下的所有浏览器中都能正常工作.

$("table.availability").each( function() {
    var siteName = $(this).parent().siblings("h2").contents().filter(function() { return this.nodeType == Node.TEXT_NODE; }).text()
    alert(sitename);
});

它获取元素的内容,并删除子元素中包含的所有内容,只留下该元素的文本.

我得到的错误是Node未定义 – 所以我在js文件的顶部声明它,然后得到关于TEXT_NODE的相同消息,所以我声明了.然后我得到以下错误:

无法获取未定义或空引用的属性“TEXT_NODE”

任何人都可以帮我解决这个问题,或者任何人都可以想到一个更好的方法来获得相同的结果.谢谢.

解决方法:

TEXT_NODE常量有一个value of 3.你可以使用它:

return this.nodeType === 3;

较旧版本的IE只是不实现Node接口,但它们仍然遵循DOM规范并分配正确的nodeType属性值.

如果要使用“常量”,可以自己声明一个Node对象:

var Node = Node || {
    ELEMENT_NODE: 1,
    ATTRIBUTE_NODE: 2,
    TEXT_NODE: 3
    // etc... if you might need other node types
};

标签:javascript,jquery,nodes,textnode
来源: https://codeday.me/bug/20190723/1511273.html