按文本查找div并删除文本

时间:2012-10-18 15:11:19

标签: javascript jquery html

如何找到包含特定文本的div并从div中删除此文本。例如

<div>
DeleteText
<span>Something text</span>
<div>Something span inner text </div>
</div>

我需要找到div 按文字(示例中为DeleteText)并从div中删除此文本。我该怎么做。

只应删除DeleteText。所有其他html元素和内容应保持原样。

7 个答案:

答案 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')"));

小提琴:http://jsfiddle.net/DwTmp/

答案 1 :(得分:3)

使用:contains选择div,然后过滤内容并删除节点。

$("div:contains('DeleteText')").contents().filter(function () {
    return (this.nodeType == 3 && $.trim(this.nodeValue) == 'DeleteText');
}).remove();

DEMO: http://jsfiddle.net/YkEy5/

答案 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]")