0

li 内の div からクラスを取得し、同じ li に追加します。

リスト項目は次のようになります。

<li class="original">
<div id="one" class="text">foo</div>
<div id="two" class="photo">foo</div>
<div id="three" class="video">foo</div>
</li>

<li class="original">
<div id="one" class="text">foo2</div>
<div id="two" class="photo">foo2</div>
<div id="three" class="video">foo2</div>
</li>

...

リスト項目の各 div から ID が「three」のクラスを取得し、それを親 li のクラスに追加する必要があります。したがって、コードを実行すると、リストは次のようになります。

<li class="original video">
<div id="one" class="text">foo</div>
<div id="two" class="photo">foo</div>
<div id="three" class="video">foo</div>
</li>

<li class="original text">
<div id="one" class="video">foo2</div>
<div id="two" class="photo">foo2</div>
<div id="three" class="text">foo2</div>
</li>

私はこのようなことを試しましたが、最初のリスト項目のみを更新します:

$("#three").each(function(i) { 
    var newclass = $(this).attr("class");                   
   $(this).parent().addClass(newclass);
});

よろしくお願いします。

4

3 に答える 3

1

ID の繰り返しに悩まされている場合

 $('[id="three"]').each(function(){  
     $(this).parent().addClass( this.className);

})
于 2012-06-20T20:54:29.713 に答える
0

同じ ID を持つ複数の要素を持つことはできません。この場合、jquery each は正しいことを行い、最初の ID を見つけてから停止します。代わりにクラスを使用してこれを修正できます。

<li class="original video"><div class="text one">foo</div></li>
<li><div class="photo two">foo</div></li>
<li><div class="video three">foo</div></li>

<li class="original"><div class="video one">foo2</div></li>
<li><div class="text two">foo2</div></li>
<li><div class="photo three">foo2</div></li>

次にjquery:

$(".three").each(function(i) { 
var newclass = $(this).attr("class");                   
$(this).parent().addClass(newclass);
});
于 2012-06-20T20:47:43.143 に答える
0

ここにあなたが見たいと思うかもしれない別の解決策があります:デモ

ここにJSコードがあります(人々が上でコメントした壊れたHTMLの問題を修正した後、重複したIDを保持しています)

$(document).ready(function(){

    $('.original').each(function(i) {
    var div = $(this).find('div').eq(2);
    var newclass = $(div).attr("class");                   
   $(this).addClass(newclass);
});
    });​
于 2012-06-20T20:57:38.460 に答える