2010-10-14 413 views
1

我们如何通过使用jQuery例如,删除HTML标签,我们有这个网站我们如何通过使用jquery去除html标签?

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

我想删除<dd>标签和产生这种输出

<div>hello world</div> 
+0

你想删除刚刚打开的标签吗?或者打开和关闭标签? – Liggi 2010-10-14 13:54:04

回答

4

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

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

You can test it out here

+0

我检查了它,但它也删除了dd标签中的内容,它是“Hello Wolrd” – user438860 2010-10-14 14:02:38

+0

@ user438860 - 除非您在浏览器中不支持HTML5标签(IE浏览器)也许?)在这种情况下,你需要像html5shiv:http://code.google.com/p/html5shiv/ – 2010-10-14 14:03:42

+0

$(“div”)。html(function(i,h){return $(h).text ();}); 这真的很有用,谢谢 – user438860 2010-10-14 14:14:42

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); 
+0

看到我的编辑,我改变它,所以你不需要使用一个类(因为你没有访问它,因为你似乎无法删除dd? – Jubair 2010-10-14 15:32:54

0

你总是可以让一个if语句来检查,看看是否div包含它内部的一个DD元素,那么如果是这样的情况下,从DD复制的内容,去掉DD元素,再注入内容进入div。

我不知道JavaScript那么多,但假设你使用正确的对象和一些简单的算法,任何事情都可以完成!

相关问题