jQuery もしくは Javascript の質問です。


<h3 id="foo"><a href="dest">リンクになっているテキスト</a>地のh3要素のテキスト<span class="bar">書式付きのテキスト</span></h3>

とあったとして、"地のh3要素のテキスト"という文字列を取り出すには、$('#foo'). に続けてどういう風に書けばいいでしょうか?
jQueryのメソッドチェーンで取り出せるのでしょうか?

回答の条件
  • 1人5回まで
  • 登録:
  • 終了:2012/05/01 16:40:22
※ 有料アンケート・ポイント付き質問機能は2023年2月28日に終了しました。

ベストアンサー

id:Cherenkov No.1

回答回数1504ベストアンサー獲得回数493

ポイント100pt

http://jsfiddle.net/cherenkov/AyBMM/

$('#foo').contents().filter(function() {
    return this.nodeType == 3;
})

参考:javascript - How do I select text nodes with jQuery? - Stack Overflow

id:quintia
$('#foo').contents().filter(function() {
    return this.nodeType == 3;
}).text()

で取得できました。

$(elem).contents().filter(function() {
   return this.nodeType == Node.TEXT_NODE;
});

の方がよさそうですがIE7で動かないのですね。

直下(直接の子ども)だけでいいなら、

$('selector').clone().children().remove().end().text()

も面白いコードです。

大変参考になるページを紹介していただきありがとうございました。

2012/05/01 16:46:55

コメントはまだありません

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

回答リクエストを送信したユーザーはいません