Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/jquery-ui/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在jquery中为accordion包装几个元素_Jquery_Jquery Ui_Accordion - Fatal编程技术网

在jquery中为accordion包装几个元素

在jquery中为accordion包装几个元素,jquery,jquery-ui,accordion,Jquery,Jquery Ui,Accordion,我目前拥有以下html: <h3 /> <p /> <p /> <ul /> <ol /> <h3 /> <p /> <p /> <ul /> <ol /> <h3 /> <p /> <p /> <ul /> <ol /> 我想创建一个手风琴,但为此,我需要以下内容: <h3 />

我目前拥有以下html:

<h3 />
<p />
<p />
<ul />
<ol />

<h3 />
<p />
<p />
<ul />
<ol />

<h3 />
<p />
<p />
<ul />
<ol />

我想创建一个手风琴,但为此,我需要以下内容:

<h3 />
<div>
     <p />
     <p />
     <ul />
     <ol />
</div>

<h3 />
<div>
     <p />
     <p />
     <ul />
     <ol />
</div>

我尝试了以下方法,但无效:

$('.page2 .articleText p, .page2 .articleText ul').after('<div class="accordion">');
$('.page2 .articleText h4:not(:first)').before('</div>');
$('.page2.articleText p,.page2.articleText ul')。在('')之后;
$('.page2.articleText h4:not(:first)')。在('')之前;
非常感谢您的帮助


谢谢

下面是一个快速的“脏”解决方案,用于将一组元素包装到一个div中:

$(function(){
    var h  = $('h3');
    var p1 = $('h3 + p');
    var p2 = $('h3 + p + p');
    var ul = $('h3 + p + p + ul');
    var ol = $('h3 + p + p + ul + ol');

    h.each(function (i) {
        var group = $(p1[i]).add(p2[i]).add(ul[i]).add(ol[i]);
        var div = $('<div />').append(group);
        $(h[i]).after(div);
    });
});    
$(函数(){
风险值h=$('h3');
风险值p1=$('h3+p');
变量p2=$('h3+p+p');
var ul=$('h3+p+p+ul');
var ol=$('h3+p+p+ul+ol');
h、 每个(功能(i){
风险值组=$(p1[i])。增加(p2[i])。增加(ul[i])。增加(ol[i]);
var div=$('').append(组);
美元(h[i])。在(div)之后;;
});
});    
我相信如果您提供了一些钩子,代码会简单得多:)

您可以使用并选择和包装每个部分,如下所示:

$("h3").each(function() {
    $(this).nextUntil("h3").wrapAll("<div />");
});​
$(“h3”)。每个(函数(){
$(本).nextUntil(“h3”).wrapAll(“”);
});​

您是否试图使用javascript将每个组的pf
p、p、ul、ol
元素封装在一个单独的
中?为什么不在服务器端创建所需的结构?