我得到了意外的结果,当我调试到问题中时,我发现Jquery.data((方法没有得到正确的数据属性值。很明显,这个值不正确,当我将代码更改为attribute.dataset.name(元素的本机属性(时,它返回了预期的值。
这是错误的屏幕截图
任何想法,可能的原因是什么,因为我在我的情况下使用了很多数据属性,并且不想在我通过Jquery.date((方法访问数据属性的任何地方更改代码。
.data(prop)
和.dataset[prop]
可以不同,如果:
-
HTML数据集包含一个值
-
jQuery的
.data
先前已在元素上调用,以存储与同一密钥相关联的值
示例:
$('div').data('foo', 'newFooVal');
console.log($('div').data('foo'));
console.log($('div')[0].dataset.foo);
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div data-foo="oldFooVal"></div>
jQuery的.data
将检索:
-
使用
.data
设置的任何先前值(与数据集完全无关( -
如果之前没有为具有该元素的键设置任何值,则数据集中该键的值将返回
因此,您必须小心设置和检索内容。无可否认,它并不完全是直观的,因为它在不同的情况下会做一些不同的事情。