“Warning: In DOM Core 1,2 and 3,Attr inherited from Node. This is no longer the case in DOM4. In order to bring the implementation of Attr up to specification,work is underway to change it to no longer inherit from Node . You should not be using any Node properties or methods on Attr objects. Starting in Gecko 7.0 (Firefox 7.0 / Thunderbird 7.0 / SeaMonkey 2.4),the ones that are going to be removed output warning messages to the console. You should revise your code accordingly. See Deprecated properties and methods for a complete list.”
向下滚动页面,我们可以看到nodeName和NodeValue的替换,使用Attr.name和Attr.value.
https://developer.mozilla.org/en/DOM/Attr#Deprecated_properties_and_methods
它对于属性或childNodes等其他方法意味着什么?
该参考文献称它已被弃用,但它们没有给予任何替代!
它已被弃用于属性,但它也适用于Node吗?
Attr对象:http://www.w3schools.com/jsref/dom_obj_attr.asp
编辑:对于Attributes(Attr),只能弃用nodeValue,因为Attr将不再在DOM Level 4中从Node继承:
这是一个帮助我理解的简单示例:
<div id="myAttribute">myTextNode</div> var myDiv = document.getElementById("myAttribute"); // If you want to get "myAttribute" from div tag alert(myDiv.attributes[0].value); // Correct way to get value of an attribute (displays "myAttribute") alert(myDiv.attributes[0].nodeValue); // Working too but deprecated method for Attr since it doesn't inherit from Node in DOM4 (.nodeValue is specific to a Node,not an Attribute) // If you want to get "myTextNode" from div tag alert(myDiv.childNodes[0].value); // Not working since .value is specific to an attribute,not a Node (displays "undefined") alert(myDiv.childNodes[0].nodeValue); // Working,.nodeValue is the correct way to get the value of a Node,it will not be deprecated for Nodes! (displays "myTextNode")
也许这会在访问属性/节点时避免与其他人混淆:)