我有一个无序列表(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>');
如果你检查结果,你会看到我在说什么。最初我把它链接起来,但它似乎在前后插入,这就是为什么我把它分开了。我想如果我先完成。之后的那么。之前它会正确显示但它不起作用。非常感谢您的所有帮助!
全部谢谢
答案 0 :(得分:3)
这是因为您将无效标记传递给after
方法,before
和after
在所选元素之前和之后插入元素作为兄弟元素,如果如果要包装元素,则应使用wrap
方法。
$('.isNav').addClass('nav').wrap('<nav class="navbar navbar-inverse"><div class="navbar-inner"></div></nav');
答案 1 :(得分:1)
您必须使用wrap()
。 before()
和after()
不会添加您传递给函数的实际HTML,它们会使用结束标记添加整个元素。因此,您使用before()
添加的元素会自动关闭,之后没有“打开”标记可以使用after()
函数关闭。
使用wrap
的示例:
$('.isNav').addClass('nav').wrap('<nav class="navbar navbar-inverse"><div class="navbar-inner">');