jquery不会在我的无序列表后插入

时间:2012-11-14 01:50:02

标签: jquery

我有一个无序列表(ul),我试图在(ul)之前和之后插入一些标签。它似乎在(ul)之前插入我的标签就好了,但由于某种原因,它不会在之后插入它。这是jsfiddle:http://jsfiddle.net/grem28/ptSVA/1/

$('.isNav').addClass('nav').before('<nav class="navbar navbar-inverse"><div class="navbar-inner">').after('</div></nav>');

如果你检查结果,你会看到我在说什么。最初我把它链接起来,但它似乎在前后插入,这就是为什么我把它分开了。我想如果我先完成。之后的那么。之前它会正确显示但它不起作用。非常感谢您的所有帮助!

全部谢谢

2 个答案:

答案 0 :(得分:3)

这是因为您将无效标记传递给after方法,beforeafter在所选元素之前和之后插入元素作为兄弟元素,如果如果要包装元素,则应使用wrap方法。

$('.isNav').addClass('nav').wrap('<nav class="navbar navbar-inverse"><div class="navbar-inner"></div></nav');

http://jsfiddle.net/brCuw/

答案 1 :(得分:1)

您必须使用wrap()before()after()不会添加您传递给函数的实际HTML,它们会使用结束标记添加整个元素。因此,您使用before()添加的元素会自动关闭,之后没有“打开”标记可以使用after()函数关闭。

使用wrap的示例:

http://jsfiddle.net/ptSVA/2/

$('.isNav').addClass('nav').wrap('<nav class="navbar navbar-inverse"><div class="navbar-inner">');