Wrap multiple div elements on same class

前端 未结 5 929
执笔经年
执笔经年 2020-12-11 04:48

I would like to use jQuery to wrap sets of class elements in a div but can\'t find the solution.

HTML:

相关标签:
5条回答
  • 2020-12-11 04:52

    Demo http://jsfiddle.net/kQz4Z/8/

    API: http://api.jquery.com/wrapAll/

    Added a break line so that you can see the difference here :) http://jsfiddle.net/kQz4Z/10/

    code

    $(function() {
    
        $('.first').wrapAll('<div class="column" />')
    
        $('.second').wrapAll('<div class="column" />')
    
        $('.third').wrapAll('<div class="column" />')
    
    
    
    
        alert($('.view-content').html());
    });​
    
    0 讨论(0)
  • 2020-12-11 04:59

    Or here is the very short dynamical solution:

    ​$(".view-content > div").each(function() {
        $(".view-content > ." + this.className).wrapAll("<div class='column' />");
    });​
    

    DEMO: http://jsfiddle.net/CqzWy/

    0 讨论(0)
  • 2020-12-11 05:10

    You could try whit this:

    var arr = $(".view-content div").map(function() { return $(this).attr('class'); }).get();
    var results = $.unique(arr);
    var i;
    
    for(i = 0; i < results.length; i++){
    
        $('.out').append('<div class="columns"></div>');
        $('.'+results[i]).clone().appendTo('.columns:last');
    }
    
    alert($('.out').html());
    

    Here an example:

    JSFIDDLE

    0 讨论(0)
  • 2020-12-11 05:14

    Use wrapAll() method

    $(function(){
        var classes = ['.first', '.second', '.third'];
    
        for (i = 0; i < classes.length; i++) {
            $(classes[i]).wrapAll('<div class="column">');
        }​
    
    });
    

    Demo: http://jsfiddle.net/g9G85/

    0 讨论(0)
  • 2020-12-11 05:14

    You can use .wrap() to wrap something in a div but if your content is not ordered it will become a mess, here's an example:

    Input

    <div class="view-content">
        <div class="first">content</div>
        <div class="second">content</div>
        <div class="first">content</div>
    </div>
    

    Output

    <div class="view-content">
        <div class="column">
            <div class="first">content</div>
            <div class="column">
                <div class="second">content</div>
            </div>
            <div class="first">content</div>
        </div>
    </div>
    
    0 讨论(0)
提交回复
热议问题