用新标记替换HTML标记

时间:2011-12-08 16:02:46

标签: jquery

如何使用jQuery将html标记替换为新标记?

我有很多table个标签,我想替换包含类的特定表。它的所有'子节点也应该被替换。

<table class='replace_this'>
    <tr>
        <td>
            All table, tr, and td tag are replaced with div tag
        </td>
    </tr>
</table>

应改为:

<div class='replace_this'>
    <div>
        <div>
            All table, tr, and td tag are replaced with div tag
        </div>
    </div>
</div>

2 个答案:

答案 0 :(得分:7)

你必须从内到外开始:

$('.replace_this td').each(function() {
    $(this).replaceWith(function() {
        return $('<div>' + this.innerHTML + '</div>')
    })
});

$('.replace_this tr').each(function() {
    $(this).replaceWith(function() {
        return $('<div>' + this.innerHTML + '</div>')
    })
});

$('table.replace_this ').each(function() {
    $(this).replaceWith(function() {
        return $('<div class="replace_this">' + this.innerHTML + '</div>')
    })
});

Example

答案 1 :(得分:0)

我有这样的事情:

$.each(['td', 'tr', 'table'], function(index, value){
    $(value).replaceWith(function() {
      return '<div>' + $(this).html() + '</div>';
    });
});

代码:http://jsfiddle.net/nHpCc/4/