JS中的.getAttribute和数据集之间的区别

时间:2018-09-26 09:25:29

标签: javascript dataset getattribute

我一直在使用.getAttribute,今天发现了.dataset,所以我想知道这些区别是什么,何时应该使用它们。

所以这是一个例子。假设我们有一个段落:

<component data="{{ object.toJson()|raw }}"></component>

如果我们使用.getAttribute

<p class="test" data-something="this is a test">some text</p>

我们得到“这是一个测试”作为输出。

如果我们使用.dataset

let testText = document.querySelector('.test');
let testGetAttribute = testText.getAttribute('data-something');
console.log(testGetAttribute);

我们还会收到“这是一个测试”。

那么,这两种方法之间有区别吗?互相使用有好处吗?

谢谢!

1 个答案:

答案 0 :(得分:1)

我之所以仅回答此问题,是因为我遇到了实际上影响应用程序功能的两种方法之间的差异。

我做了getAttribute('data-id')dataset.id来收集待办事项id

对于getAttribute,如果我逐行运行调试器,则效果很好。如果我不这样做,那么各种各样的事情都会发生。对于dataset.id,无论哪种方法都可以正常工作。

如果对此感到好奇,可以检查我的代码中的第201和202行: https://glitch.com/~wnc-reading-exercise-3注释掉第201行和取消注释第201行。

在运行应用程序时,请尝试在待办事项上完成切换,然后查看DOM发生了什么。如果四处切换,您会看到一些奇怪的值。