如何找到包含特定文本的div并从div中删除此文本。例如
<div>
DeleteText
<span>Something text</span>
<div>Something span inner text </div>
</div>
我需要找到div 按文字(示例中为DeleteText)并从div中删除此文本。我该怎么做。
只应删除DeleteText。所有其他html元素和内容应保持原样。
答案 0 :(得分:3)
:contains()
选择器。您可以通过以下方式找到DeleteText
:
$("div:contains('DeleteText')").html("");
要删除只是文字,您可以使用此功能:
function removeText(element){
var newElement = $('<' + element[0].nodeName + '/>');
element.children().each(function(){
newElement.append(this);
});
element.replaceWith(newElement);
}
现在合并两者,你得到这个:
removeText($("div:contains('DeleteText')"));
答案 1 :(得分:3)
使用:contains选择div,然后过滤内容并删除节点。
$("div:contains('DeleteText')").contents().filter(function () {
return (this.nodeType == 3 && $.trim(this.nodeValue) == 'DeleteText');
}).remove();
答案 2 :(得分:0)
:含有()
此选择器的文档位于: http://api.jquery.com/contains-selector/
答案 3 :(得分:0)
$('div:contains("something span inner text")');
应找到您的div项目
答案 4 :(得分:0)
$("div:contains('DeleteText')").html('');
匹配的文本可以直接显示在所选元素中 任何该元素的后代,或其组合。和。一样 属性值选择器,括号内的文本:contains() 可以写成一个单词或用引号括起来。该 文本必须具有匹配的案例才能被选中。
答案 5 :(得分:0)
请尝试以下
$('div:contains("sometext")').html('')
这用“&text;&#39; sometext&#39;并放空文
答案 6 :(得分:0)
您可以使用jQuery执行此操作:
$("div[innerHTML=Something inner text]")