2009-04-16 17 views
2

hrefタグ間のテキストを取得するにはどうすればよいですか?jQueryを使用して、要素のテキスト値を取得するにはどうすればよいですか?

<a href="blah">GET THIS TEXT</a> 

それはこのDOMに包まれて:あなたはtext()プロパティを探している

<div class="c1"> 
    <div class="c2"><a href="#">GET THIS TEXT</a> 
    </div> 
</div> 
+0

"jQueryを使用して、要素のテキスト値を取得するにはどうすればよいですか?" Hrefは属性であり、タグではありません。 –

+0

はい。タイトルを修正しました。 :x –

答えて

22

$('a', 'div.c2').text(); 

理由div.c2が2番目の引数として定義されてはいるそれは、その後になるのでセレクタのcontextになります。デフォルトでは、$()を使用すると、jQueryはドキュメント全体を検索し、div.c2を指定すると、<div>のクラスをc2で検索するだけです。これを踏まえて

、あなたはまた、上記の本などを書き換えることができます:それはあなたがCSSスタイルシートでこの要素を選択するために使用する構文ですので

$('div.c2 a').text(); 

ほとんどの人はこれを好みます。しかし、jQueryはそれを理解しなければなりません。あなたも行うことができます:

$('div.c2').find('a').text(); 

しかし、私は重要なことクリーナーとわずかに速く、ではないと感じて、私はコンテキストメソッドを好みます。

また、内容を取得するhtml()プロパティもあります。には、が含まれています。だから、

あなたのリンクは、このようなものだった場合:

<a href='#'><b>Hi There</b></a> 

その後:

$('a').text(); // would return Hi There 
$('a').html(); // would return <b>Hi There</b> 
+0

$( 'div.c2 a')と書くこともできることに注意してください。それを別の機能に分割する必要はありません。 – cgp

+0

私は知っていますが、私は非常にjQueryの解析を助けることを好む。可能であればセレクタ文字列を持つよりも文脈を指定するほうがきれいだと思います。 –

+0

あなたのコメントを書き留めるために私の答えを更新しました。 –

4

私はあなたがいないか、そのいずれかのマークアップをしたいですかどうかに応じて、.text()または.html()がうまくいくと思いますタグの内側に表示されます。

var txt = $('div.c2 > a').text(); 

var html = $('div.c2 > a').html() 
関連する問題