-6

特定のテキストを含む div を見つけて、このテキストを div から削除するにはどうすればよいですか。

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

テキストでdiv を検索し(例では DeleteText )、このテキストのみを div から削除する必要があります。どうすればよいですか。

DeleteText のみを削除する必要があります。他のすべての html 要素とコンテンツはそのままにしておく必要があります。

4

7 に答える 7

3

:containsを使用して div を選択し、コンテンツをフィルター処理してノードを削除します。

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

デモ: http://jsfiddle.net/YkEy5/

于 2012-10-18T15:18:53.487 に答える
2

: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/

于 2012-10-18T15:14:10.863 に答える
0

:含む()

このセレクターのドキュメントはこちら: http://api.jquery.com/contains-selector/

于 2012-10-18T15:15:28.170 に答える
0

$('div:contains("something span inner text")');あなたのdivアイテムを見つける必要があります

于 2012-10-18T15:15:31.400 に答える
0
$("div:contains('DeleteText')").html('');

一致するテキストは、選択した要素内、その要素の子孫、またはそれらの組み合わせ内に直接表示できます。属性値セレクターと同様に、:contains() の括弧内のテキストは、そのままの単語として記述することも、引用符で囲むこともできます。選択するには、テキストの大文字と小文字が一致している必要があります。

于 2012-10-18T15:15:40.807 に答える
0

以下でこれを試してください

$('div:contains("sometext")').html('')

これは、「sometext」で div を探し、空のテキストを配置します

于 2012-10-18T15:15:48.537 に答える
0

jQuery でこれを行うことができます。

$("div[innerHTML=Something inner text]")
于 2012-10-18T15:16:05.283 に答える