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

How to remove element from HTML string?

本文关键字:删除 元素 字符串 HTML      更新时间:2023-09-26

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

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>

如何让它发挥作用?

只需使用.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后,只需再次使用.text(str)设置a标记文本值,其中str是不带html标记的值

您可以克隆a,更改克隆的html代码并将克隆放入div中。

Fiddle。

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

也许他试图从每个锚点中删除i标记。

http://jsfiddle.net/1fytum86/

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

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

如果您试图删除斜体并保留文本:

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

否则,使用remove或detach的其他答案将是合适的。