如何从HTML字符串中删除元素?

时间:2014-09-10 18:30:29

标签: javascript jquery

这似乎不起作用,我在Uncaught Type行上收到.remove()错误:

JS:

var str = $("a").html();
var $html = $.parseHTML(str);
$("i",$html).remove();  

$("div").html($html);

HTML:

<a href="#">Hello <i>Bob</i></a>
<div></div>

如何让它发挥作用?

4 个答案:

答案 0 :(得分:2)

您只需使用.text()功能即可删除HTML标记。

var str = $("a").text();

$("a").text(str);  

这将导致:

<a href="#">Hello Bob</a>

示例:http://jsfiddle.net/3s1c55w2/

工作原理:

  1. $("a").text();将仅检索元素的文本,因此在您的情况下,它将返回Hello Bob
  2. 检索Hello Bob后,只需再次使用a设置.text(str)标记文本值,其中str是没有html标记的值。

答案 1 :(得分:1)

您可以克隆a,更改克隆的HTML代码并将克隆放在div内。

Fiddle

$(document).ready(function()
{
    var clone = $("a").clone();
    clone.find("i").remove();
    $("div").html(clone);
});    

答案 2 :(得分:0)

也许他正试图从每个锚中删除i标签。

http://jsfiddle.net/1fytum86/

$("a").each(function(index) {
    var str = $(this).text();
    $(this).html(str);
});

无论如何,他可能会遇到类型错误,因为parseHTML()会将字符串解析为DOM节点数组。祝你好运!

答案 3 :(得分:0)

如果您尝试删除斜体并保留文字:

$("a").html($("a").html().replace(/<\/?i>/g, ""));

否则,使用删除或分离的其他答案将是合适的。