2017-08-17 45 views
0

这里的元素的索引是我的代码:如何让没有使用的setAttribute和的getAttribute

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); 

我的问题是,如果有其他的方式才达到excatly没有的setAttribute和的getAttribute一样吗?

+0

将它们存储在某个地方? –

+0

为什么你想要那个? – marekful

+0

like'ul [i] .dataset.slide = i'?甚至更简单,设置一个属性'ul [i] .slide = i' – Thomas

回答

0

你可以用点符号来生存。但破折号在点符号中不起作用,所以您必须重构您的属性名称。

var element = document.getElementsById('image_slider'); 
element.mycustomattribute = 'foo'; 

console.log(element.mycustomattribute); 

//output: foo 

警惕经由点表示法定义的属性是不是由DOM可读。

+0

thx,工作就像一个魅力:) –

+0

很高兴帮助,你也可以upvote它,如果这不是很糟糕:D – Merigold