Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/84.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何使用jQuery更改一组元素的数据属性?_Jquery - Fatal编程技术网

如何使用jQuery更改一组元素的数据属性?

如何使用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。假设它们都有一个名为“amount”的数据属性。第一个的数据量为1,第二个为2,依此类推。什么是增加x值的最简单方法。y解决方案是

$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;