如何在 JavaScript 代码中获取数据属性的值?

2022-08-30 00:23:08

我有下一个 html:

<span data-typeId="123" data-type="topic" data-points="-1" data-important="true" id="the-span"></span>

是否有可能获取以 开头的属性,并在 JavaScript 代码中使用它,就像下面的代码一样?现在我得到了结果。data-null

document.getElementById("the-span").addEventListener("click", function(){
    var json = JSON.stringify({
        id: parseInt(this.typeId),
        subject: this.datatype,
        points: parseInt(this.points),
        user: "H. Pauwelyn"
    });
});

答案 1

您需要访问数据集属性

document.getElementById("the-span").addEventListener("click", function() {
  var json = JSON.stringify({
    id: parseInt(this.dataset.typeid),
    subject: this.dataset.type,
    points: parseInt(this.dataset.points),
    user: "Luïs"
  });
});

结果:

// json would equal:
{ "id": 123, "subject": "topic", "points": -1, "user": "Luïs" }

答案 2

由于 Internet Explorer 在版本 11 之前不支持该属性,因此您可能希望改用:datasetgetAttribute()

document.getElementById("the-span").addEventListener("click", function(){
  console.log(this.getAttribute('data-type'));
});

数据集文档

getAttribute 文档