这似乎不起作用,我在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>
如何让它发挥作用?
答案 0 :(得分:2)
您只需使用.text()功能即可删除HTML标记。
var str = $("a").text();
$("a").text(str);
这将导致:
<a href="#">Hello Bob</a>
示例:http://jsfiddle.net/3s1c55w2/
工作原理:
$("a").text();
将仅检索元素的文本,因此在您的情况下,它将返回Hello Bob
。Hello Bob
后,只需再次使用a
设置.text(str)
标记文本值,其中str
是没有html标记的值。答案 1 :(得分:1)
您可以克隆a
,更改克隆的HTML代码并将克隆放在div
内。
$(document).ready(function()
{
var clone = $("a").clone();
clone.find("i").remove();
$("div").html(clone);
});
答案 2 :(得分:0)
也许他正试图从每个锚中删除i标签。
$("a").each(function(index) {
var str = $(this).text();
$(this).html(str);
});
无论如何,他可能会遇到类型错误,因为parseHTML()会将字符串解析为DOM节点数组。祝你好运!
答案 3 :(得分:0)
如果您尝试删除斜体并保留文字:
$("a").html($("a").html().replace(/<\/?i>/g, ""));
否则,使用删除或分离的其他答案将是合适的。