2013-03-12 101 views
0

我想用第二個列表項目內容替換第一個列表項目內容sid,即使用jQuery循環的sid1=newsid1用另一個列表項目內容替換列表中的元素

列表1有sid這是div裏面我想從其他列表項目內容中取代。

<ul class='list1'> 
    <li> 
     <div>name</div> 
     <div>sid1</div> 
     <div>role</div> 
    </li> 
    <li> 
     <div>name2</div> 
     <div>sid2</div> 
     <div>role2</div> 
    </li> 
    <li> 
     <div>name3</div> 
     <div>sid3</div> 
     <div>role3</div> 
    </li> 
    <li> 
     <div>name4</div> 
     <div>sid4</div> 
     <div>role4</div> 
    </li> 
</ul> 

<ul class='list2'> 
    <li>new sid1</li> 
    <li>new sid2</li> 
    <li>new sid3</li> 
    <li>new sid4</li> 
</ul> 

回答

0

試試這個:

$('.list2 li').each(function(index){ 
    $('.list1 li:nth-child('+(index+1)+') div:nth-child(2)').text($(this).text()); 
}); 

閱讀nth-child selectorhttp://api.jquery.com/nth-child-selector/

小提琴:http://jsfiddle.net/bqvVT/3/

+0

其僅更換第一單。它應該取代所有其他人也喜歡sid2 =新sid2,sid3 =新sid3,sid4 =新sid4等 – sAnS 2013-03-12 08:24:21

+0

@santanukumar現在檢查我的答案一次。 – 2013-03-12 08:27:40

+0

我們可以使用list1來循環它,就好像在list1或list2中可以有更少或更多的項目不存在一樣。 – sAnS 2013-03-12 08:35:34

0

嘗試這種

$('.list1 > li > div:eq(1)').text($('.list2 > li:first').text()); 

這裏,

$('.list1 > li > div:eq(1)')=>選擇的<li>的第二<div>
text() =>獲取該選擇器的文本。
$('.list2 > li:first').text() =>獲得第一個<li>的文本從<ul>與班級list2。
.text($('.list2 > li:first').text()); =>用第一個代替第二個<div>的文本。
<li>

working fiddle