ok donc j'ai ce code dans le corps:
<input type="text" value="haha" id="full_name"/>
Et ce code dans le script
<script language="javascript" type="text/javascript">
function first(){
var nameContent=document.getElementById('full_name').value;
}
function second() {
first();
y=nameContent;
alert(y);
}
second();
</script>
Je veux une alerte indiquant la valeur de l'élément full_name, mais cela ne semble pas fonctionner, quelqu'un sait-il pourquoi? : S
nameContent
n'existe que dans la fonction first()
, comme vous l'avez défini dans la fonction first()
.
Pour élargir sa portée, définissez-la en dehors des fonctions:
var nameContent;
function first(){
nameContent=document.getElementById('full_name').value;
}
function second() {
first();
y=nameContent; alert(y);
}
second();
Une approche légèrement meilleure serait de return
la valeur, car les variables globales deviennent très rapidement désordonnées:
function getFullName() {
return document.getElementById('full_name').value;
}
function doStuff() {
var name = getFullName();
alert(name);
}
doStuff();
Votre portée nameContent est uniquement à l'intérieur de la première fonction. Vous n'obtiendrez jamais sa valeur de cette façon.
var nameContent; // now it's global!
function first(){
nameContent = document.getElementById('full_name').value;
}
function second() {
first();
y=nameContent;
alert(y);
}
second();
vous avez besoin d'une déclaration de retour dans votre première fonction.
function first(){
var nameContent = document.getElementById('full_name').value;
return nameContent;
}
puis dans votre deuxième fonction peut être:
function second(){
alert(first());
}
Votre variable nameContent
est à l'intérieur de l'étendue de la fonction et n'est pas visible à l'extérieur de cette fonction, donc si vous souhaitez utiliser le nameContent
à l'extérieur de la fonction, déclarez-la global
à l'intérieur du <script>
tag et utiliser les fonctions internes sans le mot clé var
comme suit
<script language="javascript" type="text/javascript">
var nameContent; // In the global scope
function first(){
nameContent=document.getElementById('full_name').value;
}
function second() {
first();
y=nameContent;
alert(y);
}
second();
</script>