javascript 使用jQuery动态设置数据属性的值

li9yvcax  于 11个月前  发布在  Java
关注(0)|答案(3)|浏览(92)

我在客户端事件中广泛使用数据属性来管理数据。是否可以使用JavaScript或jquery动态地为数据属性赋值?

<li data-class_value="somevalue" class="myclass"></li>

$('.myclass').click(function(){
   $(this).data('class_value') = "new value";
});

字符串
上面的JavaScript代码抛出错误:
“Uncaught ReferenceError:赋值中的左侧无效”。
有人能告诉我这是如何实现的吗?

klsxnrf1

klsxnrf11#

我相信这个问题的其他答案只会在jQuery中的该元素上设置数据对象。
如果你需要设置实际的HTML data-* 属性,你需要使用这个:

$(this).attr("data-class_value", "new value");

字符串
要注意以这种方式检索HTML5 data-* 属性,因为尽管您可以使用快捷方式$(this).data("class_value");来检索它们,但随后的检索将使用jQuery数据对象中的缓存值。
jQuery文档:
数据属性在第一次访问数据属性时被拉入,然后不再被访问或变异(所有数据值然后存储在jQuery内部)。
来源:jQuery caching of data attributes

b4lqfgs4

b4lqfgs42#

你需要做

$(this).data('class_value', "new value");

字符串

相关问题