4

好的,所以我已经在这个网站上搜索了很多,但我似乎找不到答案,所以我将以更好的理由问同样的问题。我正在尝试使用 jquery 添加一个打开的 div 标签。当我尝试使用 . 我知道 jquery 不喜欢像我想要的那样本地创建标签。但是,情况如下:

我有一个用于显示表单的动态表单生成器。我在表单中使用了几个标题作为部分标题。我想使用 jquery 手风琴,它想看到一个 div 元素包装了手风琴框架的内容,它想直接在我的 . 问题是开始和结束 div 标签之间的元素数量是动态的。所以我不能只是包装一些东西并完成它。我想做的是这样的:

<h3>Section 1</h3>

...动态代码部分在这里

<h3>Section 2</h3>

我想使用 jquery 来结束这样的事情:

<h3>Section 1</h3>
<div>

动态代码部分在这里

</div>
<h3>Section 2</h3>
<div>

更多动态代码

</div>

我知道我可以找到我知道的元素(h3 标签)并插入 html。问题是 jquery 不会让我。显然它对我不够信任,无法靠我自己来平衡。有人对如何使它起作用有任何想法吗?

4

2 回答 2

9

利用.wrapAll()

$('h3').each(function(){
   $(this).nextUntil('h3').wrapAll(document.createElement('div'));
});

演示:http: //jsfiddle.net/ph8D2/

于 2012-11-27T00:53:01.573 回答
3

不,实际上不可能插入开始或结束标签,感谢上帝。阻止你的不是 jquery,而是 DOM api。插入开始标签没有任何意义,因为那不是有效的实体。

只是做类似的事情

<h3>Section 1</h3>
<div class="dynamic">

</div>

$('.dynamic').html( .. your dynamic content ..)
于 2012-11-27T00:55:36.837 回答