获取属性(属性名称)
获取属性(属性名称)得到给定的attribute
or property
的元素。
此方法将首先尝试返回具有给定名称的属性的值。如果具有该名称的属性不存在,则返回该属性的值attribute
同名。如果没有attribute
用这个名字,None
被返回。
被认为是真实的值,即等于true
or false
,作为布尔值返回。所有其他非None
值以字符串形式返回。对于不存在的属性或特性,None
被返回。
获取属性(属性名称)
获取属性(属性名称)获取元素的给定属性。
听起来还是很相似吗?参见下文 ...
属性和特性
当浏览器加载页面时,parsesHTML 并从中生成 DOM 对象。对于元素节点,大多数标准 HTML 属性会自动成为 DOM 对象的属性。
例如,如果标签是:
<body id="page">
那么 DOM 对象有body.id="page"
.
Note:属性-属性映射不是一对一的!
HTML 属性
在 HTML 中,标签可能具有属性。当浏览器解析 HTML 为标签创建 DOM 对象时,它会识别标准属性并从中创建 DOM 属性。
因此,当元素具有 id 或其他标准属性时,就会创建相应的属性。但如果该属性是非标准的,则不会发生这种情况。
Note:一个元素的标准属性对于另一个元素可能是未知的。例如,type
是标准属性<input>标签,但不适合<body>标签。标准属性在相应元素类的规范中进行了描述。
因此,如果一个属性是非标准的,那么它就不会有 DOM 属性。在这种情况下,可以使用以下方法访问所有属性:
-
elem.hasAttribute(name)
: 检查是否存在。
-
elem.getAttribute(name)
: 获取值。
-
elem.setAttribute(name, value)
: 设置值。
-
elem.removeAttribute(name)
: 删除该属性。
读取非标准属性的示例:
<body something="non-standard">
<script>
alert(document.body.getAttribute('something')); // non-standard
</script>
</body>
属性-属性同步
当标准属性更改时,相应的属性会自动更新,并且(有一些例外)反之亦然。但也有例外的情况,例如input.value
仅同步来自attribute
-> 到property
,但没有回来。这feature实际上很有用,因为用户可能会修改值,然后如果我们想从 HTML 中恢复“原始”值,就在属性中。