15

我有这样的html结构/

<li id="1"></li>
<li id="2"></li>
<li id="3"></li>
<li id="comment-box"></li>

现在我想预先

<li id="4"></li>

在评论框之前。

我正在从评论框中提交一份表格,一旦成功,我就想做前置。

4

4 回答 4

33

使用before()

$('#comment-box').before('<li id="4"></li>')
于 2010-11-17T07:10:08.303 回答
4

这不是更有意义吗?:

$('ul#comments_container').prepend('<li id="4"></li>');

或者

$('<li id="4"></li>').hide().prependTo('Ul#comments_container').slideDown("slow");

这将允许您将其添加到 ul 列表的开头以将其放在列表的末尾只需使用“追加”而不是“前置”或“追加到”也可以。

于 2011-03-12T00:37:54.127 回答
0

将顺序 id 附加到元素是不常见的,但可能的情况是在匹配元素的未知长度的特定索引处插入。

如果您知道列表中有多少项目,那么您可以使用 nth-child 或 :eq 直接访问该项目,而无需将您的标记类名称或 id 耦合到 jQuery 选择器中。

$('li:nth-child(3)')选择第三个<li>,而$('li:eq(3)')选择第四个,因为 :eq 从零开始。

在您的情况下,我的偏好如下

$('li:last').prepend('<li>Fourth item</li>');

这是一个小提琴

于 2012-03-22T13:37:40.383 回答
0

如果您严格要使用 .prepend(),以下内容将对您有所帮助:

// this gives you a list with all matching elements
var elementsList = $("li");  

// this refers to an element at required index and wraps it into a jQuery object           
var elementAtIndex = $(elementsList[your index]);   

// and finally apply change
elementAtIndex.prepend("<li id=\"4\"></li>");

或者

同样的,使用.eq(),在你掌握了主要思想之后会更加优雅。.eq 允许您参考特定索引。

 var elementAtIndex= $("li").eq(your index);  
 elementAtIndex.prepend("<li id=\"4\"></li>");

最后我们来到了最后一个简短的变体:

 $("li").eq(index).prepend("<li id=\"4\"></li>"); 
于 2016-05-12T19:20:33.217 回答