9

テキスト自体がテキストを含む別の要素に隣接している場合、jQuery 要素からテキストを取得する良い方法は何ですか?

この例では、隣接する子要素のテキストを無視しながら、テキスト「Text I want」を取得します。

<span>
   <a>Text I want to ignore</a> 
   Text I want
</span>

私の解決策は、タグ内のすべてのテキストを取得してから、<span>タグ内のすべてのテキストを削除すること<a>でした。これは少し面倒なので、もっと良い方法があるかどうか疑問に思っています:

var all_the_text = $('span').text();
var the_text_i_dont_want = $('span').find('a').text();
var text_i_want = all_the_text.replace(the_text_i_dont_want, '');
4

3 に答える 3

8

このためにテキストノードに移動する必要があります。

var text_i_want = $("span").contents().filter(function(){
    return this.nodeType === 3;
}).text();​

http://jsfiddle.net/UeBZq/

于 2012-06-21T21:33:43.317 に答える
6
$("span")
    .clone()
    .children()
    .remove()
    .end()
    .text();

それをする必要があります

適切なクレジットを与えるために: )http://viralpatel.net/blogs/jquery-get-text-element-without-child-element/

于 2012-06-21T21:35:24.083 に答える
2

タグを削除し、スパンの内容を取得します。作業デモ

<span>
   <a>Text I want to ignore</a> 
   Text I want
</span>​

var all_the_text = $('span').find('a').remove();
alert($('span').text());
于 2012-06-21T21:44:23.047 に答える