Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Wrap HTML Elements

I have a HTML element like this:

<div class="entry-content">
    <p>Lorem Ipsum</p>
    <p>Lorem Ipsum</p>
    <p>Lorem Ipsum</p>
    <div class="download-attr"></div>
    <div class="download-url"></div>
    <div class="download-ads"></div>
</div>

I want to wrap it looks like:

<div class="entry-content">    
    <p>Lorem Ipsum</p>    
    <div class="entry-content-left">
        <p>Lorem Ipsum</p>
        <p>Lorem Ipsum</p>
        <div class="download-attr"></div>
        <div class="download-url"></div>
    </div>    
    <div class="entry-content-right">
        <div class="download-ads"></div>
    </div>    
</div>

How can I do it with jquery?

like image 733
Yudi Avatar asked Dec 27 '25 23:12

Yudi


2 Answers

Here's how i'd do it:

$('.download-ads').wrap('<div class="entry-content-right"></div>');
$(".entry-content>*:not(p:first):not(div:last)").wrapAll('<div class="entry-content-left"></div>');

here's a fiddle: https://jsfiddle.net/mckinleymedia/Lu2pjm8e/

like image 155
William Schroeder McKinley Avatar answered Dec 30 '25 11:12

William Schroeder McKinley


Try this way:

var content = $(".entry-content");
var lhs = $('<div class="entry-content-left"></div>');
var rhs = $('<div class="entry-content-right"></div>');
lhs.append($(".entry-content>*:not(p:first):not(div:last)")); //you can create a different selector for this task
rhs.append($(".entry-content .download-ads"));
content.append(lhs).append(rhs);

Demo: http://jsfiddle.net/lotusgodkk/GCu2D/953/

like image 33
K K Avatar answered Dec 30 '25 11:12

K K