J'ai essayé ceci mais montrant "indéfini".
function test() {
var t = document.getElementById('superman').value;
alert(t); }
Existe-t-il un moyen d'obtenir la valeur en utilisant un simple Javascript sans jQuery Please!
Réponses:
Vous voudrez probablement essayer textContentau lieu de innerHTML.
Donné innerHTMLrenverra le contenu DOM sous forme de String"texte" et non exclusivement dans le fichier div. C'est bien si vous savez que votre divne contient que du texte mais ne convient pas dans tous les cas d'utilisation. Dans ces cas, vous devrez probablement utiliser à la textContentplace deinnerHTML
Par exemple, en tenant compte du balisage suivant:
<div id="test">
Some <span class="foo">sample</span> text.
</div>
Vous obtiendrez le résultat suivant:
var node = document.getElementById('test'),
htmlContent = node.innerHTML,
// htmlContent = "Some <span class="foo">sample</span> text."
textContent = node.textContent;
// textContent = "Some sample text."
Voir MDN pour plus de détails:
innerHTMLne renvoie pas uniquement le contenu du texte comme demandé dans la question. .textContent
Vous pouvez utiliser innerHTML(puis analyser le texte du HTML) ou utiliser innerText.
let textContentWithHTMLTags = document.querySelector('div').innerHTML;
let textContent = document.querySelector('div').innerText;
console.log(textContentWithHTMLTags, textContent);
innerHTMLet innerTextest pris en charge par tous les navigateurs (sauf FireFox <44), y compris IE6 .
En fait, vous n'avez pas besoin d'appeler la document.getElementById()fonction pour accéder à votre div.
Vous pouvez l'utiliser objectdirectement en id:
text = test.textContent || test.innerText;
alert(text);
.textContentn'est pas pris en charge dans IE8 et les versions antérieures, ce qui le rend un peu difficile à utiliser.