我一直在使用.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);
我们还会收到“这是一个测试”。
那么,这两种方法之间有区别吗?互相使用有好处吗?
谢谢!
答案 0 :(得分:1)
我之所以仅回答此问题,是因为我遇到了实际上影响应用程序功能的两种方法之间的差异。
我做了getAttribute('data-id')
和dataset.id
来收集待办事项id
。
对于getAttribute,如果我逐行运行调试器,则效果很好。如果我不这样做,那么各种各样的事情都会发生。对于dataset.id,无论哪种方法都可以正常工作。
如果对此感到好奇,可以检查我的代码中的第201和202行: https://glitch.com/~wnc-reading-exercise-3注释掉第201行和取消注释第201行。
在运行应用程序时,请尝试在待办事项上完成切换,然后查看DOM发生了什么。如果四处切换,您会看到一些奇怪的值。