1. data- 和dataset
- 在html5中,我们使用 data- 来定义自定义属性,语法如下:
<element data-*="value">
<body>
<ul>
<li data-id="1">点我试试</li>
<li data-id="2">点我试试</li>
<li data-id="3">点我试试</li>
</ul>
<script>
let ul = document.querySelector('ul')
ul.addEventListener('click', function (e) {
cosole.log(`我是第${e.target.dataset.id}个li`)
})
</script>
</body>
- 使用 元素.dataset 可获得一个自定义属性集:
<input type="text" data-name="user" data-id="9785">
<script>
const input = document.querySelector('input')
console.log(input.dataset)
</script>
- 使用 data- 自定义属性的好处:绑定 DOM 强相关数据,js 传递数据。
2. setAttribute() 和 getAttribute()
- 使用 setAttribute() 创建或改变某个新属性,语法如下:
element.setAttribute('name','value')
- 使用 getAttribute () 访问自定义属性:
<body>
<input type="text" name="uname" id="inpt">
<button id="btn">提交</button>
<script>
document.getElementById('btn').setAttribute('name', 'uploadBtn')
document.getElementById('inpt').setAttribute('name', 'username')
window.addEventListener('click', function (e) {
console.log(e.target.getAttribute('name'))
console.log(e.target.getAttributeNode('name'))
})
</script>
</body>
- 使用 data- 属性方法比 setAttribute() 方法简便,页面交互效果更好。