0

誰かが助けてくれることを願っています。本文内のテキストノードを取得する必要があります。他の要素に含まれていない場合でも。

私はもう試した:

$("p, div, html, body").each(function(){
    $(this).contents().filter(function() {
        var regExText = /(\w|\d|,|;|&)/;                                           
        if (this.nodeType == 3 && regExText.test(this.nodeValue)) {
            $(this).wrap('<span></span>');
            }
      });
});

これはPsとDivsでそれらをつかんでいますが、体自体ではつかんでいません。

4

4 に答える 4

1

これはあなたが望むものではありませんか?

$('body').text();
于 2010-10-16T17:58:17.910 に答える
1

contents()指定したタグの子要素 ​​(p、div、html、および body) のみが返されます。たとえば、td または h1 タグ内のテキスト ノードは見つかりません。

jQuery を使用してタグ内のすべてのテキスト ノードを取得する 1 つの方法<body>は、body の子とその子孫を検索することです。

$("body, body *").contents().filter(function() {
    // if this is a text node and matches regex
    // then do something to it
}

この回答では、すべてのテキスト ノードを取得するための jQuery 以外のさまざまなアプローチを見つけることができます。

于 2010-10-16T18:11:07.780 に答える
0

あなたが持っているものはうまくいくはずです。ここでテストできます。セレクターに含める必要はないと思いますが、で処理したい要素html以外に本当に何かありますか?<body><span>

于 2010-10-16T17:59:28.890 に答える
0

HTMLをきれいにしてみませんか?

var strInputCode=$("body").html();
var strTagStrippedText = strInputCode.replace(/<\/?[^>]+(>|$)/g, "");
alert("Output text:\n" + strTagStrippedText);  

おそらく $("body").text(), が機能することを認めなければなりません。

于 2010-10-16T18:15:16.517 に答える