2011-09-14 16 views
6

jqueryの "text"関数を使用して要素内のテキストを変更するjquery関数があります。このtd要素の中には、このような子の "a"タグがあります。変更するjQuery change child text

<td class="v3"><a href="somelink">text to change</a>

テキストは、TDクラスによって識別されます。テキストを変更するとリンクが失われます。質問はどのように子供(a href)に触れることなく親要素を使ってテキストを変更するのですか?

ありがとう

答えて

9

お持ちの場合:しかし

$("td.v3").children("a").text("new text"); 

、:

<td class="v3"> 
    <a href="somelink">text to change</a> 
</td> 

は、その後、あなたの機能であなたはこのようなものを持っている必要がありますこれはdiであるすべてのリンクを選択しますクラス.v3のtdsのrect子。子供たちが役立つはずです後)(1次回の追加:

$("td.v3").children("a").first().text("new text"); 
+0

子供たちは、最後に言及された選択がシズルに入る候補と考えられるため、$( "td.v3 a")より速く動作します - http://www.myinkblog.com/2009/09/11/sizzle -a-look-at-jquerys-new-css-selector-engine/- 実行に数ミリ秒かかります。 –

2

ラップspan要素内のテキスト、およびスパン内のテキストを変更します。

<div id="foo"> 
    <span>bar</span> 
    <a href="#">link</a> 
</div> 

... 

$('#foo span').text('new text'); 

編集:

それともそれはあなたが何をしたいなら、アンカー内のテキストを変更するために$('td.v3 a').text("new text")を使用しています。

1

他の要素のテキストを変更するだけです。

<td> 
    <a href="#">Link</a> 
    <span>SomeText</span> 
</td> 

そして、そのように呼び出す:

$('td').find('span').text('myNewText'); 
0

あなたが選択メニュー内のテキストを変更したい場合は、オプションにIDやクラスを与えることによってこれを行うことができます。

 $('selector').children('option[id=option_id]').text('new text');