81

jQuery なしで data- 属性にアクセスできますか?

jQuery を使えば簡単ですが、jQuery を使わずにそれを行う方法はどこにもありません。

「jQueryなし」でGoogleで検索すると、jQueryの例しか得られません。

それは可能ですか?

4

5 に答える 5

132

ここで私はこの例を見つけました:

<div id='strawberry-plant' data-fruit='12'></div>
<script>
    // 'Getting' data-attributes using getAttribute
    var plant = document.getElementById('strawberry-plant');
    var fruitCount = plant.getAttribute('data-fruit'); // fruitCount = '12'
    // 'Setting' data-attributes using setAttribute
    plant.setAttribute('data-fruit', '7'); // Pesky birds
</script>

したがって、それは非常に実行可能に見えます。

更新: Microsoft は現在 (2020 年) Chromium ベースの Edge を優先して古い Internet Explorer エンジンを段階的に廃止しているため、このdatasetプロパティはどこでも機能する可能性があります。しばらくの間、IE がまだ強制されている組織や企業ネットワークは例外となります。ただし、これを書いている時点では、少なくとも Chrome 81 では、jsPerfはデータセットを使用するよりも get/setAttribute メソッドの方が高速であることを示しています。

于 2013-04-09T20:52:50.657 に答える
42

データセット属性を使用できます。次のように:

element = document.getElementById("el");
alert(element.dataset.name); // element.dataset.name == data-name
于 2013-04-09T20:55:27.413 に答える
-1

これを試すことができると思います:

var ele = document.getElementById("myelement");
if (ele.hasOwnProperty("data")) {
  alert(ele.data);
}

または使用

alert(ele['data-property']);
于 2013-04-09T21:02:06.350 に答える