Ho provato questo ma mostrando "undefined".
function test() {
var t = document.getElementById('superman').value;
alert(t); }
C'è un modo per ottenere il valore utilizzando un semplice Javascript no jQuery Per favore!
Risposte:
Probabilmente vorrai provare textContentinvece di innerHTML.
Dato innerHTMLrestituirà il contenuto DOM come Stringe non esclusivamente il "testo" in div. Va bene se sai che il tuo divcontiene solo testo ma non è adatto per ogni caso d'uso. In questi casi, probabilmente dovrai usare al textContentposto diinnerHTML
Ad esempio, considerando il seguente markup:
<div id="test">
Some <span class="foo">sample</span> text.
</div>
Otterrai il seguente risultato:
var node = document.getElementById('test'),
htmlContent = node.innerHTML,
// htmlContent = "Some <span class="foo">sample</span> text."
textContent = node.textContent;
// textContent = "Some sample text."
Vedi MDN per maggiori dettagli:
innerHTMLnon restituisce solo il contenuto del testo come richiesto nella domanda. Implementerei una soluzione basata sul .textContentrilevamento delle funzionalità con un fallback per <IE9
Puoi usare innerHTML(quindi analizzare il testo da HTML) o usare innerText.
let textContentWithHTMLTags = document.querySelector('div').innerHTML;
let textContent = document.querySelector('div').innerText;
console.log(textContentWithHTMLTags, textContent);
innerHTMLed innerTextè supportato da tutti i browser (eccetto FireFox <44) incluso IE6 .
In realtà non è necessario chiamare la document.getElementById()funzione per accedere al tuo file div.
Puoi usarlo objectdirettamente da id:
text = test.textContent || test.innerText;
alert(text);
.textContentnon è supportato in IE8 e versioni precedenti, il che lo rende un po 'difficile da usare.