我有一个带有数据属性的ul。像这样:
<ul class="carousel-creations">
<li data-teaflavour="pear">
</li>
<li data-teaflavour="mint">
</li>
<li data-teaflavour="chai">
</li>
<li data-teaflavour="mint">
</li>
<li data-teaflavour="pear">
</li>
<li data-teaflavour="chai">
</li>
</ul>
但我的问题是。我想将数据atributs复制到其他ul。这是我的第二次。
<ul class="controlNav">
<li><a rel="0" title="" class=""></a><span class="hover"></span></li>
<li><a rel="1" title="" class=""></a><span class="hover"></span></li>
<li><a rel="2" title="" class=""></a><span class="hover"></span></li>
<li><a rel="3" title="" class="active"></a><span class="hover"></span></li>
<li><a rel="4" title="" class=""></a><span class="hover"></span></li>
<li><a rel="5" title="" class=""></a><span class="hover"></span></li>
</ul>
我想要第一个ul的数据属性。是复制到ul controlNav。你明白我的英语不好吗? (A)我想将data属性复制到第二个ul。所以第二个ul li的所有项目。获得第一个ul的数据属性。
答案 0 :(得分:3)
您可以使用each()迭代列表项,并使用提供的index
参数在另一个列表中找到相应的项目:
var $sourceItems = $("ul.carousel-creations li");
$("ul.controlNav li").each(function(index) {
$(this).attr("data-teaflavour",
$sourceItems.eq(index).attr("data-teaflavour"));
});
答案 1 :(得分:1)
您可以使用jquery的.clone()
方法。
答案 2 :(得分:1)
如果您只想复制数据属性,请使用$(target).data($(source).data());
- 显然您必须替换 source 和 target 。