不使用jQuery访问'data-'属性

use*_*356 63 javascript

我可以在没有jQuery的情况下访问数据属性吗?

使用jQuery很容易,但是如果没有jQuery,我无法在任何地方看到如何做到这一点.

如果我在没有jQuery的情况下搜索Google,我得到的就是jQuery示例.

它甚至可能吗?

fre*_*rik 108

这里我发现了这个例子:

<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>
Run Code Online (Sandbox Code Playgroud)

所以看起来非常可行.

  • 请参阅下面关于数据集的 tomor 答案 - 这是正确的答案,除非您必须支持已弃用的网络浏览器(IE),如果是这种情况,这对您来说真的很不幸......所有现代浏览器版本都支持 HTML5 和 ECMAScript 5(当然) 和 6 几乎完全在这一点上。 (2认同)

tom*_*mor 33

您可以使用dataset属性.如:

element = document.getElementById("el");
alert(element.dataset.name); // element.dataset.name == data-name
Run Code Online (Sandbox Code Playgroud)

  • 注意:虽然完全正确,但这仅适用于符合HTML5标准的浏览器.使用`getAttribute`方法适用于大多数浏览器. (3认同)
  • 虽然不一定要与不赞成的浏览器(例如,所有版本的IE)向后兼容,但这是正确的答案。当时(2013年)当然是前瞻性思考,但距今已有5年了,这是应该做到的方式。 (2认同)