2

内部のhtmlタグのテキストを除外してdivのテキスト部分を抽出するにはどうすればよいですか?

これがdivです

<div class="MessageBox">I want to see only this message<span....>Click Here to collapse</span></div>

これがjavascript関数内のjqueryです

var message=  $(".MessageBox").text();

今、私はメッセージを受け取っています=「このメッセージだけを見たいのですが、ここをクリックして折りたたんでください」

メッセージが欲しい="このメッセージだけを見たい"

4

4 に答える 4

3

このメソッドを使用しclone()てメイン要素のクローンを作成し、そのクローンの子を削除して、不要な部分を破棄できます。

var clone = $('.MessageBox').clone();
clone.children().remove();
var message = clone.text();

もちろん、クローン作成の部分をスキップすることもできます。しかし、実際にはページから要素を削除することになり、それを実行するかどうかはわかりません。メイン要素のクローンを作成すると、ユーザーが実際に表示するものではなく、そのコピーを操作できます。

于 2012-07-31T20:15:08.937 に答える
2

テキストのみ(要素を除く)のノードタイプのセレクターをフィルター処理して、次のようにテキストを取得できます。

var text = $('.MessageBox').contents().filter(function() {
              return this.nodeType == 3;
           }).text();

フィドル

于 2012-07-31T20:18:51.643 に答える
1

試す:

$('.MessageBox')
        .clone()    //clones the element
        .children() //selects all the children
        .remove()   //removes all the children
        .end()      //again goes back to selected element
        .text();    //gets the text of element

jsFiddleの例

于 2012-07-31T20:18:33.017 に答える
0

確かに、あなたはこのようなことをすることができます:

div = $('.MessageBox').clone();
inner = div.children();
inner.remove();
alert(​div.text()​​​​​​​);
于 2012-07-31T20:20:24.763 に答える