我试图将元素的属性增加一个而不用一个“每个循环”。
以下是我的输入:
<div class="target" data="0"></div>
<div class="target" data="1"></div>
<div class="target" data="0"></div>
<div class="target" data="5"></div>
下面是预期结果
<div class="target" data="1"></div>
<div class="target" data="2"></div>
<div class="target" data="1"></div>
<div class="target" data="6"></div>
我尝试了以下但不幸的是没有成功:
$('.target').attr('data' + 1);
$('.target').attr('data', 1);
答案 0 :(得分:2)
...一个没有一个&#34;每个循环&#34;。
你不能,你需要某种类型的循环。 attr
很乐意提供一个:
$('.target').attr('data', function(_, v) {
// Note we want the *second* arg ^^^^
return Number(v) + 1;
});
直播示例:
$('.target').attr('data', function(_, v) {
return Number(v) + 1;
});
// Show the values:
console.log("Values after update:");
$('.target').each(function() {
console.log($(this).attr("data"));
});
&#13;
<div class="target" data="0">....</div>
<div class="target" data="1">....</div>
<div class="target" data="0">....</div>
<div class="target" data="5">....</div>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
&#13;
附注:data
是div
元素的无效属性。不过,您可以使用data-
前缀:<div data-value="0">