如何使用jQuery更改一组元素的数据属性?
假设我有一组元素$elements。假设它们都有一个名为“amount”的数据属性。第一个的数据量为1,第二个为2,依此类推。什么是增加x值的最简单方法。y解决方案是如何使用jQuery更改一组元素的数据属性?,jquery,Jquery,假设我有一组元素$elements。假设它们都有一个名为“amount”的数据属性。第一个的数据量为1,第二个为2,依此类推。什么是增加x值的最简单方法。y解决方案是 $elements.each(function(){ $(this).data('amount',$(this).data('amount')+=x); }); 如果不使用each语句,是否有更好的解决方案? 谢谢 至少从v1.6.2开始,jQuery没有为接受函数的.data()提供重载。仍在使用每个,但您可以在其中执
$elements.each(function(){
$(this).data('amount',$(this).data('amount')+=x);
});
如果不使用each语句,是否有更好的解决方案?
谢谢 至少从v1.6.2开始,jQuery没有为接受函数的
.data()
提供重载。仍在使用每个,但您可以在其中执行以下操作:
$(this).data().amount += x;
谢谢这不一样吗?无论如何,你仍然在使用“每个”。难道没有其他方法吗?我会做
$.data(这是'amount')+=x
…要在创建其他未使用的对象时保存,您真正需要的是类似于this[$.expando].amount+=x的内容。当然,你也可以这样快速循环,这取决于性能在这里有多重要。也许Tomalak更新了他的答案,但我肯定没有看到任何涉及到每一个。我不相信.data()
,不像.text()
那样。您可能还指的是+x
,而不是+=x
;-)@尼克,谢谢你关于表演的提示。我将按照我从一开始就想到的方式更改答案,以便您的注释保留在上下文中(并且有效)。@Šime Vidas,是的,因为不带参数的.data()
返回jQuery用于存储数据的原始对象。事实上,jQuery文档中推荐使用它来获取/设置多个属性。它从1.4版就开始出现了-是时候让我了解它了:)
$(this).data().amount += x;