2010-03-17 4 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> 

Je veux obtenir le texte de l'élément li dont l'id = "menu-selected".
En ce moment je suis en train de faire quelque chose comme
Récupère le texte d'un élément li

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

est-il un moyen plus simple de faire la même chose?

+1

a demandé 6 questions. accepté aucun. n'importe quelle raison? –

+0

@nvl Oups, je suis très nouveau à stackoverflow, acceptera ici après :) – Deepak

+0

:). Mais je ne dis pas accepter toutes les réponses, accepter seulement si vous êtes satisfait (et mp réponses seront satisfaisantes :) –

Répondre

16

Dans votre cas:

document.getElementById('menu_selected').innerHTML 
0

Essayez document.getElementById('menu_selected').text

+0

Il devrait être 'textContent' dans FF et' text' dans IE – Amarghosh

+1

@Amarghosh: C'est 'innerText' dans IE, 'text' ne s'applique qu'à quelques éléments. –

6

Si vous avez les éléments HTML à l'intérieur LI et que vous voulez pour obtenir le texte, vous avez besoin innerText ou textContent.

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

Pour éviter d'utiliser cette instruction conditionnelle à chaque fois, vous pouvez simplement déclarer une variable globale:

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

Si vous pouvez utiliser jQuery cela se résume à

var text = $('#menu_selected').text(); 
Questions connexes