替换<a> tag with <div> using jQuery</div></a>

时间:2013-05-08 11:06:49

标签: jquery html replace

我有以下代码:

<div class="normal">
    <div>
        <div>~Content 1~</div>
    </div>
</div>

<div class="normal replace">
    <a href="#">
        <div>~Content 2~</div>
    </a>
</div>

使用jQuery,我想用<a>标记替换<div class="normal replace">内的<div>标记,同时保留其内容。

<div class="normal replace">
    <div="result">
        <div>~Content 2~</div>
    </div>
</div>

6 个答案:

答案 0 :(得分:13)

$('.normal > a').replaceWith(function() {
    return $('<div/>', {
        html: this.innerHTML
    });
});

http://jsfiddle.net/VMxAL/

答案 1 :(得分:4)

尝试这样的事情:

// Select the 'a' tag to be replaced and call the replaceWith method
$('.normal a').replaceWith(function(){
    // Execute a callback to generate contents of the replacement
    // The $('<div>') part creates a div
    return $('<div>', {
        html: this.innerHTML // This takes the html of the 'a' tag and copies it to the new div
    });
});

jQuery replaceWith方法接受该项并将其替换为回调函数返回的项。

有关详细信息,请参阅here

答案 2 :(得分:1)

在这里你可以从这里Using jQuery to replace one tag with another

获取
$('div.normal a').contents().unwrap().wrap('<div id='result'/>');

答案 3 :(得分:1)

试试这个 -

$('div.normal.replace a').find('div').unwrap().wrap("<div id='result'/>");

答案 4 :(得分:0)

使用以下内容 $('div.normal.replace a')。replaceWith(“”+ $('div.normal.replace a')。html()+“”);

答案 5 :(得分:0)

请点击我在下面尝试过的jsfiddle示例。

Click here for JS Fiddle example

希望有所帮助。