2013-07-30 8 views
11

Ho una pagina HTML, in cui il codice HTML è reso come:Come ottenere il valore del testo dell'etichetta da una pagina HTML?

<div id = 'mViB'> 
<table id = 'myTable'> 
<tbody> 
<tr> ...</tr> 
<tr>...</tr> 
<tr> ...</tr> 
<tr>....</tr> 
<tr> 
<td> 
<label id="*spaM4" for="*zigField4"> 
All hell. 
<span class = 'msde32'></span> 
</label> 
</td> 
</tr> 
</tbody> 
</table> 
</div> 

Ora quello che voglio fare è ottenere il testo dell'etichetta 'Tutto l'inferno.' dall'etichetta

A tale scopo, ho utilizzato entrambi: document.getElementById('*spaM4').text e document.getElementById('*spaM4').value ma incidentalmente nessuno di essi ha funzionato.

Ho utilizzato document.getElementById('*spaM4').innerHTML ma restituisce lo span class, ma voglio solo ottenere il testo.

Sfortunatamente, gli asterischi negli ID elemento sono codice di terze parti e non posso cambiarlo.

Qualcuno può suggerire un altro modo per ottenere il testo dell'etichetta?

+2

suo document.getElementById ('spaM4'). InnerHTML; rimuovi * dall'ID – PravinS

+2

Non utilizzare gli asterischi negli ID, vero? –

+0

@DavidJashi: Possono essere utilizzati, questo non è un problema, alcune volte per la categorizzazione e l'indicizzazione, viene usato l'asterisco. –

risposta

23

Prova questo:

document.getElementById('*spaM4').textContent 

Se avete bisogno di indirizzare < IE9, allora avete bisogno di utilizzare .innerText

+0

'textContent' fa il lavoro per me, +1 e accettato. –

9

Questo vi ottenere quello che si desidera in JS pianura.

var el = document.getElementById('*spaM4'); 
text = (el.innerText || el.textContent); 

FIDDLE

+0

Si potrebbe aggiungere '/\s{2 ,}/g.replace(text, '')' per normalizzare lo spazio bianco. – Tomalak

+1

Grazie.'innerText' non ha funzionato in mozilla, ma' textContent' ha funzionato. +1 –

+0

@TheDarkKnight, ottimo. Felice è stato utile. – Sergio

0
var lbltext = document.getElementById('*spaM4').innerHTML 
0

Il modo migliore per ottenere il valore di testo da 01 L'elementoè il seguente.

se vi sarà sempre ids elemento spesso è meglio avere una funzione per restituire gli id:

function id(e){return document.getElementById(e)} 

Si supponga la seguente struttura: <label for='phone'>Phone number</label> <input type='text' id='phone' placeholder='Mobile or landline numbers...'>

Questo codice estrae il valore del testo 'Numero di telefono 'dal <label>: var text = id('phone').previousElementSibling.innerHTML;

Questo codice funziona su tutti i browser e non è necessario assegnare a ciascun elemento <label> un ID univoco.

+0

Puoi anche usare 'previousElementSibling.textContent 'come i browser moderni, incluso Firefox, riconoscono questo formato. – BlackMagic

Problemi correlati