用另一个列表项目内容替换列表中的元素

问题描述:

我想用第二个列表项目内容替换第一个列表项目内容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> 

试试这个:

$('.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

尝试这种

$('.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