45

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

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

假设我想在<li>下面/之后添加一个新的<li>Position 2</li>,我该如何使用 jQuery 来做到这一点?

我尝试使用下面的代码来做到这一点:

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

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

有人可以给我一些帮助吗?

谢谢你。

4

4 回答 4

81

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

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

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

的文档append()清楚地说:

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


为了完整性:

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

于 2010-05-28T20:20:24.860 回答
8

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

于 2010-05-28T20:29:27.980 回答
3
$('<option val="position3">Position3</option>').insertAfter('#list :nth-child(<give childnumber here>)')

索引从 1 开始

于 2012-08-09T08:33:17.513 回答
1

在这里检查insertAfter

于 2010-05-28T20:19:55.763 回答