jQuery使用数组换行并放置一个类

时间:2012-02-04 05:07:41

标签: php jquery arrays

我想将h3标记和div包含在一个带有follow数组的div的div下如何用jQuery实现呢?

继承了我目前的代码:

$sections = array('section1','section2','section3');


<h3>Section Title 1</h3>
<div class="options_1">
    <p>Some Options</p>
</div>

<h3>Section Title 2</h3>
<div class="options_2">
    <p>Some Options</p>
</div>

<h3>Section Title 3</h3>
<div class="options_3">
    <p>Some Options</p>
</div>

这就是我想要完成的事情

$sections = array('section1','section2','section3');

<div class="section1">
    <h3>Section Title 1</h3>
    <div class="options_1">
        <p>Some Options</p>
    </div>
</div>

<div class="section2">
    <h3>Section Title 2</h3>
    <div class="options_2">
        <p>Some Options</p>
    </div>
</div>

<div class="section3">
    <h3>Section Title 3</h3>
    <div class="options_3">
        <p>Some Options</p>
    </div>
</div>

非常感谢任何帮助。 感谢

2 个答案:

答案 0 :(得分:1)

var $sections = ['section1', 'section2', 'section3'];

$("h3").each(function(idx){
    var next = $(this).next();
    var c = $sections[idx];
    $(this).wrap('<div class="'+c+'" />').parent().append(next);
});

答案 1 :(得分:0)

假设您希望新div的类名是<h3>标记的文本,您可以这样做:

$("h3").each(function() {
    var text = $(this).text();
    var section = $('<div class="' + text + '"></div>');
    section.insertBefore(this);
    var next = $(this).next();
    section.append(this).append(next);
});

这将获取每个<h3>的文本,创建一个新的div作为类名,将其插入<h3>标记之前,然后插入<h3>和以下的兄弟对象作为新div的孩子。