2011-09-14 15 views
6

Tengo una función jquery que cambia un texto dentro de un elemento utilizando una función de "texto" jquery. Dentro de este elemento td hay una etiqueta "a" infantil como esta.jQuery cambiar texto hijo

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

el texto para cambiar es identificado por el td class. Cuando cambio el texto, pierdo el enlace. La pregunta es ¿cómo puedo cambiar el texto usando el elemento padre sin tocar el elemento secundario (a href)?

Gracias

Respuesta

9

si tiene:

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

Luego, en su función que debe tener algo como esto:

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

Sin embargo, esto seleccionará todos los enlaces que son di niños de tds con clase .v3. La adición de un .First() después de los niños deben ayudar:

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

niños funciona más rápido que $ ("td.v3 a") porque la última selección mencionados se considera un candidato para entrar en chisporroteo - http://www.myinkblog.com/2009/09/11/sizzle -a-look-at-jquerys-new-css-selector-engine/- que tomará unos ms ms para ejecutarse;) –

2

ajustar el texto en un elemento span, y cambiar el texto en el lapso.

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

... 

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

Editar:

O utilice $('td.v3 a').text("new text") para cambiar el texto en el ancla, si eso es lo que quiere hacer.

1

Simplemente cambiaría el texto de otro elemento.

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

continuación, se invoca este modo:

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

Si desea cambiar el texto en un menú de selección, se puede hacer esto dando una opción un id o clase.

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