2011-09-14 53 views
6

我有一個jquery函數,它使用jquery「text」函數更改元素內的文本。在這個td元素裏面是這樣的孩子「a」標籤。jQuery更改子文本

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

的文字變化是由TD類標識。當我改變文本時,我失去了鏈接。問題是我如何在不觸及孩子的情況下使用父元素更改文本(href)?

感謝名單

回答

9

如果您有:

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

然後在你的功能,你應該有這樣的事情:

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

然而,這將選擇所有的鏈接將tds的孩子與.v3課程聯繫起來。添加。首先()後,孩子們應該幫助:

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

兒童工作快於$(「td.v3一」),因爲最後提到的選擇被認爲是候選人進入嘶嘶聲 - http://www.myinkblog.com/2009/09/11/sizzle -a-look-at-jquerys-new-css-selector-engine/- 這將需要幾個額外的ms來運行;) –

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或class做到這一點。

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