如何找到包含特定文本的 div 并从 div 中删除此文本。例如
<div>
DeleteText
<span>Something text</span>
<div>Something span inner text </div>
</div>
我需要按文本查找 div (例如 DeleteText)并从 div 中仅删除此文本。我该怎么做。
只应删除 DeleteText。所有其他 html 元素和内容应保持原样。
如何找到包含特定文本的 div 并从 div 中删除此文本。例如
<div>
DeleteText
<span>Something text</span>
<div>Something span inner text </div>
</div>
我需要按文本查找 div (例如 DeleteText)并从 div 中仅删除此文本。我该怎么做。
只应删除 DeleteText。所有其他 html 元素和内容应保持原样。
使用:contains选择 div,然后过滤内容并删除节点。
$("div:contains('DeleteText')").contents().filter(function () {
return (this.nodeType == 3 && $.trim(this.nodeValue) == 'DeleteText');
}).remove();
演示:http: //jsfiddle.net/YkEy5/
:contains()
选择器。您可以DeleteText
通过以下方式找到:
$("div:contains('DeleteText')").html("");
要仅删除text,您可以使用此功能:
function removeText(element){
var newElement = $('<' + element[0].nodeName + '/>');
element.children().each(function(){
newElement.append(this);
});
element.replaceWith(newElement);
}
现在结合两者,你得到这个:
removeText($("div:contains('DeleteText')"));
:包含()
这个选择器的文档在这里: http ://api.jquery.com/contains-selector/
$('div:contains("something span inner text")');
应该找到你的 div 项目
$("div:contains('DeleteText')").html('');
匹配的文本可以直接出现在所选元素中、该元素的任何后代中,或者它们的组合中。与属性值选择器一样,:contains() 括号内的文本可以写成裸词或用引号括起来。文本必须具有匹配的大小写才能被选中。
在下面试试这个
$('div:contains("sometext")').html('')
这会查找带有“sometext”的 div 并放置空文本
你可以用 jQuery 做到这一点:
$("div[innerHTML=Something inner text]")