我们如何使用Jquery删除html标签?

时间:2010-10-14 13:51:57

标签: jquery

如何使用Jquery删除html标签,例如我们有这个html

<div><dd>hello world</dd></div>

我想删除<dd>代码并生成此输出

<div>hello world</div>

4 个答案:

答案 0 :(得分:4)

您可以使用.replaceWith(),例如:

$("dd").replaceWith(function() { return $(this).contents(); });

You can test it out here

答案 1 :(得分:1)

要删除所有子节点,只保留文本,也可以尝试:

$("div").html(function(i, h){ return $(h).text(); });

I forked @Nick Craver's jsFiddle here

答案 2 :(得分:0)

这是我使用的。虽然介意你这只有你给div一个类(或id)。

var string = $('div.test').html().replace('<dd>', '').replace('</dd>', '')
$('div.test').html(string);

这样做只是简单地将div的内容放入一个变量中(使用.html()不仅仅是文本而是所有的html)然后去掉dd标签,然后重新填充

编辑:

这是实际做到这一点的更好方法。使用此代码,您不必依赖于div的类或ID。

    container = $('div').find('dd').parent();
    var test = container.html().replace('<dd>', '').replace('</dd>', '')
    container.html(test);

答案 3 :(得分:0)

你总是可以创建一个if语句,检查div是否包含一个dd元素,然后如果是这种情况,从dd复制内容,删除dd元素,然后将内容注入div

我不太了解javascript,但假设您使用正确的对象和一些简单的算法,任何事情都可以完成!