将-data复制到其他ul

时间:2011-11-08 14:36:55

标签: javascript jquery copy

我有一个带有数据属性的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的数据属性。

3 个答案:

答案 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