基于每个元素的预先存在的唯一属性,复制/更改多个元素的属性

时间:2015-11-25 01:23:17

标签: javascript jquery attributes attr

如何为已经创建(动态创建)和dupe&的一组元素创建属性?改变相同的元素?例如:

<div class="category" data-category-name="Pizza">Pizza</div>
<div class="category" data-category-name="Burgers">Burgers</div>
<div class="category" data-category-name="Drinks">Drinks</div>

这些需要添加另一个属性,例如&#34; data-open-category&#34;,并且需要获取&#34; data-category-name&#34;属性如下:

<div class="category" data-category-name="Pizza" data-open-category="Pizza">Pizza</div>
<div class="category" data-category-name="Burgers" data-open-category="Burgers">Burgers</div>
<div class="category" data-category-name="Drinks" data-open-category="Drinks">Drinks</div>

2 个答案:

答案 0 :(得分:0)

尝试使用.attr().data()

&#13;
&#13;
$("[data-category-name]").attr("data-open-category", function(_, val) {     
  // set both `.attr()` , `.data()`
  return ($(this).data().openCategory = $(this).data().categoryName)
});
$("[data-open-category]").each(function() {
  console.log($(this).data(), $(this).attr("data-open-category"))
})
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js">
</script>
<div class="category" data-category-name="Pizza">Pizza</div>
<div class="category" data-category-name="Burgers">Burgers</div>
<div class="category" data-category-name="Drinks">Drinks</div>
&#13;
&#13;
&#13;

答案 1 :(得分:0)

使用.each添加数据attr

  $(".category").each(function() {
    var cat = $(this).data("category-name")

    $(this).attr("data-open-category", cat)

})

Fiddle