Me gustaría cambiar el texto de un elemento HTML pero preservar el resto del html interno con jQuery.
Por ejemplo:
<a href="link.html">Some text <img src="image.jpg" /></a>reemplace "Algún texto" con "Otro texto", y el resultado debería verse así:
<a href="link.html">Other text <img src="image.jpg" /></a>EDITAR: Mi solución actual es la siguiente:
var aElem = $('a'); var children = aElem.children(); aElem.text("NEW TEXT"); aElem.append(children);Pero debe haber alguna manera más elegante de hacer esto.
Esto parece funcionar bien.
<html> <head> </head> <body> <a href="link.html">Some text <img src="img.jpg" /></a> </body> </html> <script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.5.0/jquery.min.js"></script> <script type="text/javascript"> $(function(){ var $link = $('a'); var $img = $link.find('img'); $link.html('New Text'); $link.append($img); }); </script>Envuelva el texto que desea cambiar en un lapso
<a href="link.html"><span>Some text</span> <img src="image.jpg" /></a> $('a span').html( 'new text' );