Mam ul z atrybutami danych. Lubię to:

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

Ale mój problem jest. Chcę skopiować atrybuty danych innych ul. To jest mój drugi 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>

Chcę, aby dane atrybutus pierwszego ul. Są kopiowaniem do Controlnav. Czy rozumiesz mój zły angielski? (A) Chcę skopiować atrybut danych do drugiego ul. Więc wszystkie przedmioty drugiego ul. Atrybuty danych uzyskują pierwsze ul.

3
Mike Vierwind 8 listopad 2011, 18:36

3 odpowiedzi

Najlepsza odpowiedź

Można przewagę nad listą elementów z każdy () i użyj dostarczonego argumentu index Aby zlokalizować odpowiedni element na drugiej liście:

var $sourceItems = $("ul.carousel-creations li");
$("ul.controlNav li").each(function(index) {
    $(this).attr("data-teaflavour",
        $sourceItems.eq(index).attr("data-teaflavour"));
});
3
Frédéric Hamidi 8 listopad 2011, 14:41

Możesz użyć jQuery's .clone() metoda.

1
Marc B 8 listopad 2011, 14:41

Jeśli chcesz po prostu skopiować atrybuty danych, użyj $(target).data($(source).data()); - oczywiście musisz zastąpić Źródło i Cel .

1
ThiefMaster 8 listopad 2011, 14:44