如何在特定位置添加列表项
我想在一个特定的位置添加一个<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