質問: data-* 属性のJS上での利用について の続き 例 ``` document.getElementById('calc').addEventListener('click', {calc: true, handleEvent: handleEvent}, false); ``` document.getElementById('calc').addEventListener('click', {calc: true, handleEvent: handleEvent}, false); とは第二引数にオブジェクトでプロパティ名と値を記載すると、 下記と完全一致した時のみcalcIDの要素を取得できるという事でしょうか? value="calc" data-calc="true" ・ 自分でdataのサンプルを作ったのですが、JSの変数の二つ目が、 getAttributeがundefiedと出てしまいます。 どこに間違えがあるかご存知でしょうか? https://codepen.io/anon/pen/Qpymwx?editors=1112
回答: `getElementsByName`では``などの**`name`属性**を見てエレメントを検索します。`class`しか指定していない以上、codepenに書いた形では見つかりません。 また、`addEventListener`の第2引数にオブジェクトを指定した場合、そのオブジェクトの中にある`handleEvent`というメソッドを実行したのと同じ扱いになります(W3C)。**ほかにプロパティがあっても、何も動作は変わりません**。 自分で`getAttribute`や`dataset`を使って読み出して下さい。