用Dash看英文文档的时候,总是会出现attributes还有properties,那么他们的区别是什么呢,换一种说法,各自的定义是什么。
- 元素可以包含属性(attributes),用来给一个元素设置各种属性(properties)
在JavaScript中,常常会有,hasOwnProperty, setAttrribute(),我们来看看高程中以attributes为关键词搜索的结果:
与getAttribute()对应的方法是setAttribute(),这个方法接受两个参数:要设置的特性名和值。如果特性已经存在,setAttribute()会以指定的值替换现有的值;如果特性不存在,setAttribute()则创建该属性并设置相应的值。
attributes 属性
Element 类型是使用attributes 属性的唯一一个DOM 节点类型。attributes 属性中包含一个
NamedNodeMap,与NodeList 类似,也是一个“动态”的集合。元素的每一个特性都由一个Attr 节
点表示,每个节点都保存在NamedNodeMap 对象中。NamedNodeMap 对象拥有下列方法。
getNamedItem(name):返回nodeName 属性等于name 的节点;
removeNamedItem(name):从列表中移除nodeName 属性等于name 的节点;
setNamedItem(node):向列表中添加节点,以节点的nodeName 属性为索引;
item(pos):返回位于数字pos 位置处的节点。
attributes 属性中包含一系列节点,每个节点的nodeName 就是特性的名称,而节点的nodeValue
就是特性的值。要取得元素的id 特性,可以使用以下代码。
var id = element.attributes.getNamedItem("id").nodeValue;
以下是使用方括号语法通过特性名称访问节点的简写方式。
var id = element.attributes["id"].nodeValue;
--JavaScript高级程序设计
如果搜索property的话就几乎无处不在,每页都有。
hasOwnProperty(propertyName):用于检查给定的属性在当前对象实例中(而不是在实例的原型中)是否存在。其中,作为参数的属性名(propertyName)必须以字符串形式指定。
--JavaScript高级程序设计