bap*_*ptx 7 html javascript dom deprecated dom4
"警告:在DOM Core 1,2和3中,Attr继承自Node.在DOM4中不再是这种情况.为了使Attr的实现达到规范,正在进行将其更改为不再继承Node的工作你不应该在Attr对象上使用任何Node属性或方法.从Gecko 7.0(Firefox 7.0/Thunderbird 7.0/SeaMonkey 2.4)开始,那些要删除的属性或方法会向控制台输出警告信息.你应该修改你的代码相应地.请参阅弃用的属性和方法以获取完整列表."
向下滚动页面,我们可以使用Attr.name和Attr.value查看nodeName和NodeValue的替换.
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")
Run Code Online (Sandbox Code Playgroud)
也许这会在访问属性/节点时避免与其他人混淆:)
他们所说的是Attr
作为实例的对象(例如返回的对象Element.getAttributeNode()
),曾经拥有它继承的属性Node
.
但是,因为DOM4中不是这种情况,所以他们试图删除这种继承.因此,当您现在获得Attr
对象的实例时,不推荐使用的列表中列出的属性将按其记录的方式运行.
一个大问题:它已被弃用于属性,但它也适用于Node吗?:不,他们没有被弃用.您可以Node
从它自己的文档页面看到属性列表.
Attr
对象不用多少(永远?)无论如何; 你确定这关心你吗?