2009-10-29 12 views
15

Tengo un archivo HTML que contiene la siguiente línea:Obtener el valor de texto de un objeto de texto en JavaScript

<div><img src="img1.gif"><br>My Text</div> 

Estoy intentando seleccionar la frase "Mi texto" utilizando JavaScript para que pueda cambiar eso. Puedo obtener el objeto que contiene el texto usando lastChild, pero no puedo entender cómo obtener el valor del texto en sí.

Respuesta

21
<div id="test"><img src="img1.gif"><br>My Text</div> 

function getText(obj) { 
    return obj.textContent ? obj.textContent : obj.innerText; 
} 

function setText(obj, to) { 
    obj.textContent? obj.textContent = to : obj.innerText = to; 
} 

getText(document.getElementById('test')) // 'My Text' 
setText(document.getElementById('test').lastChild, 'bar') 

Nota: innerText es para IE DOM, textContent es para el resto de la API compatible DOM como de Mozilla.

+0

Hombre fresco gracias – Ralph

+0

me olvidó especificar 'lastChild', me acaba de agregar ahora. –

+0

@meder No creas que tu negativa táctica a la respuesta de los demás ha pasado desapercibida. –

2

si tiene

<div><img src="img1.gif"><br><span>My Text</span></div> 

entonces usted puede hacer

lastChild.innerHTML obtiene el valor y también se puede hacer

lastChild.innerHTML="new text" 
-1

probar este

.InnerText 
0
var x = the object you got 
var theOldText = x.innerText 
x.innerText = "new text" 
0

Mi sugerencia sería poner el valor que desea cambiar en su propio elemento que puede identificar. A continuación, puede utilizar una simple línea de jQuery:

<div><img src="img1.gif"><br><div id='myText'>My Text</div></div> 

$('#myText').text('new text'); 
0

puede acceder al contenido de texto del [objeto Texto] por la propiedad "datos". esta propiedad es R/W para que pueda usarla tanto para leer como para escribir.

<div><img id="my_img_1" src="img1.gif">My Text</div> 
<script> 
    alert('my current text = ' + lastChild.data); 
    lastChild.data = 'new text'; 
</script> 

se pueden encontrar más here

Cuestiones relacionadas