我正在退出a previous post,专门讨论从元素中删除字符串的问题。这样做的代码是:
$this.text( $this.text().replace("text to strip out", "") );
我已成功删除了“类别:”
文本仅供参考:这是一个博客页面,其中包含动态添加的类别。剥离“categories:”之前的HTML结构:
<container>
<div class="categories">
"categories: " //This is what I strip out with above code
<a href = "...">Category Name</a> //This is a linked category name
</div>
</container>
问题在于,当我删除“类别:”时,它也会删除并留下一个未链接的“类别名称”
在jquery运行之后,html看起来像这样:
<container>
<div class="categories">Category Name</div>
</container>
我需要保持链接处于活动状态,因为我希望用户能够单击“类别名称”以保持链接。
答案 0 :(得分:0)
一种方法,不知道它是否是最好的方法,是将锚元素保存为javascript变量。然后在删除要删除的内容后,将该锚点重新注入。
答案 1 :(得分:0)
试试这个......
$("div.categories").each(function() {
var $this = $(this);
$this.html($this.html().replace("categories: ", ""));
});
答案 2 :(得分:0)
要删除textNode
,您需要使用contents()
来检索它们,然后是filter()
和remove()
的组合,如下所示:
$('.categories')
.contents()
.filter(function() { return this.nodeType == 3; })
.remove();
请注意,这将删除所有直接子textNodes。如果要按节点文本进行过滤,请相应地修改filter()
函数。