Obtenir l'élément de texte
Je suis un débutant. Je suis en train de pop-up une boîte d'alerte avec le texte contenu dans un <div>
mais je suis arriver null
.
Javascript:
alert(document.getElementById("ticker").value);
HTML
<asp:Content ID="Content1" ContentPlaceHolderID="head" runat="Server">
<script src="Tick.js" type="text/javascript"></script>
</asp:Content>
<asp:Content ID="Content2" ContentPlaceHolderID="ContentPlaceHolder1" runat="Server">
<div id="ticker">
Sample
</div>
</asp:Content >
Ce que je fais mal?
source d'informationauteur Mansour
Vous devez vous connecter pour publier un commentaire.
Essayer:
Gardez cependant à l'esprit que le texte à l'intérieur d'un nœud est considéré comme un des enfants de ce nœud, innerHTML sera de retour tout le HTML à l'intérieur de cet élément.
C'est expliqué ici:
http://www.quirksmode.org/dom/intro.html
Si le texte est le seul enfant innerHTML sera beau travail
Le code suivant est équivalent à utiliser innerHTML pour votre exemple:
il récupère la valeur du noeud de la première enfant de votre div
innerHTML vous donnera tout le contenu qui est à l'intérieur de l'élément, y compris les éléments HTML tous les tous les autres nœuds et le texte.
Si vous souhaitez obtenir uniquement le texte qui est directement dans l'élément nodeValue ou du texte Contenu:
comme ceci:
texte
Cette obtiendrez le texte "abc" et de le placer dans des variables a et b, ils seront tous les deux ont "abc".
Soyez prudent avec textContent toutefois, en raison de textContent n'est pas pris en charge dans Internet Explorer 8, nodeValue sur l'autre main est dans DOM1 ce qui signifie très vieux navigateurs prennent en charge.
Et aussi, si vous êtes débutant, peut-être que vous ne savez pas, mais si vous êtes l'exécution de code javascript à droite après navigateur ouvrir la page web, alors vous devez lier les fichiers javascript en bas de votre code html juste avant le corps de la balise de fermeture, c'est parce que si vous essayez de les get/set de texte par exemple pour un élément, et si cet élément n'est pas encore chargé par le navigateur, vous obtiendrez des erreurs javascript et votre code ne fonctionnera pas. Ce sera le cas si vous associez vos fichiers javascript ou mettre votre code javascript dans le head de la page.
Les navigateurs de lire la page de haut en bas et comme ils l'ont lu, ils exécutent tout et de place dans la mémoire de l'ordinateur - RAM, cela s'appelle de l'analyse. Donc, si vous mettez le code javascript avant le contenu de la page est chargée, et si le code javascript essaie de lire ou de définir un élément qui n'est pas encore lue par le navigateur, vous obtiendrez une erreur.
Utilisation
innerHTML
.Ou mieux encore, utiliser du jQuery
text()
:Il ne sera pas disponible jusqu'à ce que le document est chargé. Modifier le code JS:
Le problème avec textContent est, il vous donne le contenu textuel à l'intérieur d'autres éléments HTML.
Donc j'ai fini par trouver tout le contenu comme une chaîne de caractères, puis il a obtenu ce dont j'avais besoin à l'aide des sous-chaînes: