- 特性(attribute)— 写在 HTML 中的内容。
- 属性(property)— DOM 对象中的内容。
HTML 特性有以下几个特征:
- 它们的名字是大小写不敏感的(
id与ID相同)。 - 它们的值总是字符串类型的。
操作特性的方法:
elem.hasAttribute(name)— 检查是否存在这个特性。elem.getAttribute(name)— 获取这个特性值。elem.setAttribute(name, value)— 设置这个特性值。elem.removeAttribute(name)— 移除这个特性。elem.attributes— 所有特性的集合。
自定义特性
以 “data-” 开头的特性均被保留供程序员使用。它们可在 dataset 属性中使用。
例如,如果一个 elem 有一个名为 "data-about" 的特性,那么可以通过 elem.dataset.about 取到它。
像 data-order-state 这样的多词特性可以以驼峰式进行调用:dataset.orderState
示例1:自定义特性设置元素样式
<style>.order[data-order-state="new"] {color: green;}.order[data-order-state="pending"] {color: blue;}.order[data-order-state="canceled"] {color: red;}</style><div id="order" class="order" data-order-state="new">A new order.</div><script>// 读取alert(order.dataset.orderState); // new// 修改order.dataset.orderState = "pending"; // (*)</script>
示例2: 根据特性查找元素,并读取特性值
<!DOCTYPE html><html><body><div data-widget-name="menu">Choose the genre</div><script>// 获取它let elem = document.querySelector('[data-widget-name]');// 读取值alert(elem.dataset.widgetName);// 或alert(elem.getAttribute('data-widget-name'));</script></body></html>
