2012-07-31 44 views
10

Tengo problemas para obtener el texto interno de un nodo en particular. He agregado el nodo de ejemplo con el que estoy trabajando y el javascript que he creado. El javascript funciona tan lejos como devolver este <span id="goal_left">3 goals lect</span> si lo registro en la consola. Si agrego innerText a los ejemplos de javascript, no devolverá nada a la consola. ¿Alguna idea de cómo obtener este texto?obteniendo el texto interno de un nodo

html

<span id="goal_left">3 goals lect</span> 

javascript: estos ejemplos devuelven <span id="goal_left">3 goals lect</span>

document.getElementById("goal_left"); 

document.querySelectorAll("span#goal_left")[0]; 

javascript: estos ejemplos nada

document.getElementById("goal_left").innerText; 

document.querySelectorAll("span#goal_left")[0].innerText; 

Respuesta

26

Probablemente la forma más fácil:

document.querySelectorAll("span#goal_left")[0].firstChild.nodeValue; 

Aunque si siempre desea que el primer nodo devuelto por querySelectorAll() que podría simplemente utilizar:

document.querySelector("span#goal_left").firstChild.nodeValue; 

Por cierto, me imagino que cualquier navegador que implementa querySelectorAll() probablemente implemente textContent, dando:

document.querySelector("span#goal_left").textContent; 

Solo para ofrecer una opción de multi-navegador:.

var textProperty = 'textContent' in document ? 'textContent' : 'innerText'; 
document.getElementById('goal_left')[textProperty] 
+0

http://caniuse.com/#feat=textcontent – Vadorequest

+0

http://caniuse.com/#feat=innertext La implementación en IE es la misma para ambos, así que dudo que este sea un navegador cruzado debajo de IE11 – Vadorequest

2

La propiedad innerHTML podría ser lo que estás buscando regresan. Mantiene el código HTML dentro de un elemento como cadena.

+0

intenté innerHTML pero no devuelve nada a la consola –

0

document.getElementById ("goal_left") en lugar de innerHTML innerText.

También es posible que desee utilizar jQuery para manipular elementos DOM, es mucho más fácil y menos propenso a errores.

+0

probé innerHTML pero no devuelve nada a la consola –

+0

Me funcionó en Chrome, intente var aa = document.getElementById ("goal_left"). innerHTML ; y console.log (aa); – Drawyan

Cuestiones relacionadas