这是我的代码:
const slider = document.querySelector('#image_slider');
const ul = document.querySelectorAll('#image_slider li img');
for(let i = 0; i < ul.length; i++) {
ul[i].setAttribute('data-slide', i)
};
slider.addEventListener('click', (e) => {
if(e.target.nodeName === 'IMG') {
console.log(e.target.getAttribute('data-slide'));
}
}, false);
我的问题是,如果没有setAttribute和getAttribute,还有其他方法可以解决这个问题吗?
答案 0 :(得分:0)
您可以使用点表示法生存。但是破折号在点符号中不起作用,因此您必须重构属性名称。
var element = document.getElementsById('image_slider');
element.mycustomattribute = 'foo';
console.log(element.mycustomattribute);
//output: foo
警惕通过点符号定义的属性不能被DOM读取。