2017-08-17 55 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

相關問題