2017-04-27 6 views
2

私はネイティブjsを使用しています。私がクリックしたすべての要素をdata-atributeから取得する必要があります。値のデータ属性のネイティブJavaScriptを取得

window.onload = function() { 

    let btn = document.getElementsByClassName('btn'); 

    for(let i = 0; i < btn.length; i++) { 
     btn[i].addEventListener("click" , function(e) { 
      let dataBtn = e.getAttribute('data-btn'); 
      console.log(dataBtn); 
     }); 
    } 

}; 

しかし、私は

は私がネイティブJSでこれを取得し、使用することができている(e.getAttributeは関数ではありません)エラーが出ますか?

+0

'e.target.getAttribute(...)' https://developer.mozilla.org/en-US/docs/Web/API/イベント/ターゲット – Satpal

+0

私はdataSetオブジェクト 'e.target.dataSet.btn'を好きです。 – evolutionxbox

+0

[Here](http://stackoverflow.com/questions/15912246/access-data-attribute-without-jquery)と[ここ]( http://stackoverflow.com/questions/33760520/get-data-attributes-in-javascript-code) – evolutionxbox

答えて

1

イベントハンドラ関数で現在クリックされている要素の'data-btn'属性にアクセスするには、this.getAttribute('data-btn')を呼び出すか、btn[i].getAttribute('data-btn');を呼び出してアクセスします。

コード:

let btn = document.getElementsByClassName('btn'); 
 

 
for (let i = 0, len = btn.length; i < len; i++) { 
 
    btn[i].addEventListener('click' , function() { 
 
    let dataBtn = this.getAttribute('data-btn'); 
 
    console.log(dataBtn); 
 
    }); 
 
}
<a class="btn btn-default" data-btn="1" href="#" role="button">Link</a> 
 
<button class="btn btn-default" data-btn="2" type="submit">Button</button> 
 
<input class="btn btn-default" data-btn="3" type="button" value="Input"> 
 
<input class="btn btn-default" data-btn="4" type="submit" value="Submit">

関連する問題