javascript – DOM4:不推荐使用的属性和方法,这是什么意思?

“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")

也许这会在访问属性/节点时避免与其他人混淆:)

解决方法

他们所说的是Attr实例的对象(例如 Element.getAttributeNode()返回的对象),曾经拥有从Node继承的属性.

但是,因为在DOM4中不是这种情况,所以他们试图删除这种继承.因此,当您现在获得Attr对象的实例时,the deprecated list中列出的属性将按其记录的方式运行.

一个很大的问题:对于一个属性它是否已被弃用,但它是否也适用于Node?:不,它们不会被弃用.您可以在it’s own文档页面中看到Node具有的属性列表.

无论如何,Attr对象使用不多(永远?);你确定这关心你吗?

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


kindeditor4.x代码高亮功能默认使用的是prettify插件,prettify是Google提供的一款源代码语法高亮着色器,它提供一种简单的形式来着色HTML页面上的程序代码,实现方式如下: 首先在编辑器里面插入javascript代码: 确定后会在编辑器插入这样的代码: <pre
这一篇我将介绍如何让kindeditor4.x整合SyntaxHighlighter代码高亮,因为SyntaxHighlighter的应用非常广泛,所以将kindeditor默认的prettify替换为SyntaxHighlighter代码高亮插件 上一篇“让kindeditor显示高亮代码”中已经
js如何实现弹出form提交表单?(图文+视频)
js怎么获取复选框选中的值
js如何实现倒计时跳转页面
如何用js控制图片放大缩小
JS怎么获取当前时间戳
JS如何判断对象是否为数组
JS怎么获取图片当前宽高
JS对象如何转为json格式字符串
JS怎么获取图片原始宽高
怎么在click事件中调用多个js函数
js如何往数组中添加新元素
js如何拆分字符串
JS怎么对数组内元素进行求和
JS如何判断屏幕大小
js怎么解析json数据
js如何实时获取浏览器窗口大小
原生JS实现别踩白块小游戏(五)
原生JS实现别踩白块小游戏(一)