我有这样的代码:

<div id="header">
    <ul class="tabs">
        <li><a href="/user/view"><span class="tab">Profile</span></a></li>
        <li><a href="/user/edit"><span class="tab">Edit</span></a></li>
    </ul>
</div>

我想使用jQuery添加以下到列表:

<li><a href="/user/messages"><span class="tab">Message Center</span></a></li>

我试了一下:

$("#content ul li:last").append("<li><a href="/user/messages"><span class="tab">Message Center</span></a></li>");

但是这会在最后一个li中(就在结束标记之前)添加新的li,而不是在最后一个li之后。加上这个li的最好方法是什么?


当前回答

而不是

$("#header ul li:last")

try

$("#header ul")

其他回答

这样可以做到:

$("#header ul").append('<li><a href="/user/messages"><span class="tab">Message Center</span></a></li>');

两件事:

您可以将<li>附加到<ul>本身。 您需要使用与您在HTML中使用的相反类型的引号。因此,由于您在属性中使用双引号,所以代码周围应使用单引号。

用“after”代替“append”怎么样?

$("#content ul li:last").after('<li><a href="/user/messages"><span class="tab">Message Center</span></a></li>');

".after()"可以在匹配元素集的每个元素之后插入由参数指定的内容。

Use:

// Creating and adding an element to the page at the same time.
$("ul").append("<li>list item</li>");

只是添加到这个线程-如果你正在移动一个现有的项目,你将需要使用克隆,然后true/false是否克隆/深度克隆事件以及(https://api.jquery.com/clone/)。

例子: $(" #内容ul) .append ($ (' .existing_li ') .clone(真));

这是另一个

$("#header ul li").last().html('<li> Menu 5 </li>');