4

可能重复:
使用 .after() 添加 html 关闭和打开标签

我需要在 a 之前<li>和之后添加一些 HTML <li>

选择器可以工作,但是当它添加 HTML 时,它也会<div>通过添加来关闭 s </div>。我需要它打开。

我的代码:

$('#ja-megamenu .level1').before('<div class="childcontent cols1 ">');

注意:我只需要<div class="childcontent cols1 ">li(with class="level1")之前添加它

然后稍后我将使用:

 $('#ja-megamenu .level1').after('</div>');

添加关闭</div>

此代码不起作用。我怎样才能让它工作?

整天都在阅读文档,但还没有找到答案......

谢谢 :-)

4

5 回答 5

4

你不能这样做,如果你想在元素周围添加一个 div,请使用jQuery 的 wrap()

$('#ja-megamenu .level1').wrap('<div class="childcontent cols1 "></div>');

但是你遇到的问题是一个 div 不能换一个 li!你需要做点别的。

于 2012-10-18T12:32:15.687 回答
3

尽管此 HTML 无效(<li>不能是父级<div>),但您可以使用wrap()

$("#ja-megamenu .level1").wrap("<div class='childcontent cols1' />");
于 2012-10-18T12:32:52.600 回答
1

尝试使用wrap,如果你想要你的 html ,你可以尝试在之前和之后添加。

$('#ja-megamenu .level1').wrap('<div class="childcontent cols1 ">');
于 2012-10-18T12:32:41.163 回答
1

使用包装...

$('#ja-megamenu .level1').wrap('<div class="childcontent cols1">');
于 2012-10-18T12:33:20.667 回答
1

首先你这是无效的操作,因为你不能在div之前或之后添加li

li元素必须在ulorol容器中,并且其兄弟元素必须在li.

所以试着改变你的结构:也许把div里面li

<ul>
    <li class="level1"><div></div></li>
    <li></li>
    <li></li>
</ul>

$('.level1').prepend('<div> Your content here</div>');
于 2012-10-18T12:37:24.237 回答