2010-03-17 19 views
16
<ul class="leftbutton" > 
      <li id="menu-selected">Sample 1</li> 
      <li>Sample 2</li> 
      <li>Sample 3</li> 
      <li>Sample 4</li> 
      <li>Sample 5</li> 
    </ul> 

Quiero obtener el texto del elemento li que el id = "menú-seleccionado".
En este momento estoy haciendo algo como
Obtener el texto de un elemento li

document.getElementById('menu_selected').childNodes.item(0).nodeValue 

¿Hay alguna forma más simple de hacer lo mismo?

+1

preguntó 6 preguntas. aceptado ninguno. ¿alguna razón en particular? –

+0

@nvl Vaya, soy muy nuevo en stackoverflow, lo acepto aquí después :) – Deepak

+0

:). Pero no digo aceptar todas las respuestas, aceptar solo si está satisfecho (y las respuestas de mp serán satisfactorias :) –

Respuesta

16

En su caso:

document.getElementById('menu_selected').innerHTML 
0

Trate document.getElementById('menu_selected').text

+0

Debería ser 'textContent' en FF y' text' en IE – Amarghosh

+1

@Amarghosh: Es 'innerText' en IE, 'text' solo se aplica a algunos elementos. –

6

Si usted tiene HTML dentro de los elementos LI y sólo desea obtener el texto, es necesario innerText o textContent.

var liEl = document.getElementById('menu_selected'); 
var txt = liEl["innerText" in liEl ? "innerText" : "textContent"]; 

evitar el uso de esta sentencia condicional cada vez, sólo podría declarar una variable global:

var textContentProp = "innerText" in document.body ? "innerText" : "textContent"; 
function getText() 
{ 
    return document.getElementById('menu_selected')[textContentProp]; 
} 
2

Si puede utilizar jQuery que se reduce a

var text = $('#menu_selected').text(); 
Cuestiones relacionadas