1

我有一个无序列表(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>');

如果您检查结果,您会看到我在说什么。最初我把它链起来,但它似乎将前后插入在一起,这就是我将它分开的原因。我想如果我先做 .after 然后 .before 它会正确显示,但它不起作用。非常感谢您的所有帮助!

谢谢大家

4

2 回答 2

3

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

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

http://jsfiddle.net/brCuw/

于 2012-11-14T01:52:14.933 回答
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">');
于 2012-11-14T01:54:41.490 回答