如何在特定位置添加列表项

我想在一个特定的位置添加一个<li> ,例如:

 <ul id="list"> <li>Position 1</li> <li>Position 2</li> <li>Position 4</li> <ul> 

假设我想在<li>Position 2</li>之后添加一个新的<li> <li>Position 2</li> ,我怎样才能使用jQuery?

我试着用下面的代码来做:

 $('#list li:eq(1)').append('<li>Position 3</li>'); 

但是,它不起作用,因为它将<li>追加到<li> <li>Position 2</li> ,而是在<li>Position 2</li>

有人能给我一些帮助吗?

谢谢。

你必须使用after()而不是append()

说明:将由参数指定的内容插入匹配元素集中的每个元素之后。

 $('#list li:eq(1)').after('<li>Position 3</li>'); 

append()的文档清楚地说:

将内容(…)插入每个元素的末尾


为了完整性:

请注意:eq(n)匹配匹配元素集的第n个元素,而:nth-child(n)匹配父元素的第n个子元素。

你应该使用after()或者insertAfter()
http://api.jquery.com/category/manipulation/dom-insertion-outside/

 $('<option val="position3">Position3</option>').insertAfter('#list :nth-child(<give childnumber here>)') 

索引从1开始

在这里检查insertAfter