如何用javascript包装重复的html块?

时间:2013-10-20 20:11:47

标签: javascript jquery wordpress

我正在为wordpress博客编写自定义页面。 PHP即时注入了大量内容。我必须使用jQuery为动态创建的html标签添加一些CSS类。我被困在这一个......

我如何将这些“重复视频块”包装在我的用户将在带有div的wordpress页面上创建?

注意:div.entry-content中的所有元素都具有类'3'。课程'1'和'2'是元素特定的类。

<div class="canvas">
<div class="entry-content">

    <p class="1 3">Title-1</p>
    <div class="2 3">_____</div>
    <p class="3">Video Here</p> 
    <!- End of first "repeating video-block" -->

    <p class="1 3">Title-2</p>
    <div class="2 3">_____</div>
    <p class="3">Video Here</p>

    <p class="1 3">Title-3</p>
    <div class="2 3">_____</div>
    <p class="3">Video Here</p>

</div>
</div>

这就像我一直在努力工作一样。 http://jsfiddle.net/djfrsn/mq5ww/2/

var above      = $('.2').prev();
var below      = $('.2').after();
var videoBlock = '<div></div>';
$(below).addBack().wrapAll(videoBlock);

到目前为止,我的资源一直是@jQuery网站上的DOM遍历文档&amp;这个堆栈溢出帖子(jQuery How to wrap div around multiple of the same class elements)似乎接近我的需要,但到目前为止还没有运气。

这是我想要的输出:

<div class="canvas">
<div class="entry-content">

    <div class="vid-block">
        <p class="1 3">Title-1</p>
        <div class="2 3">_____</div>
        <p class="3">Video Here</p> 
    </div> <!- End of first "repeating video-block" -->

    <div class="vid-block">
        <p class="1 3">Title-2</p>
        <div class="2 3">_____</div>
        <p class="3">Video Here</p> 
    </div>

    <div class="vid-block">
        <p class="1 3">Title-3</p>
        <div class="2 3">_____</div>
        <p class="3">Video Here</p> 
    </div>

</div>
</div>

1 个答案:

答案 0 :(得分:1)

这应该做你想要的。

http://jsfiddle.net/mq5ww/4/

$(".1").each(function(){
    $(this).nextUntil(".1").addBack().wrapAll("<div class='wrapper'>");
});