わかりましたので、私はこのコードを本文に持っています:
<input type="text" value="haha" id="full_name"/>
そして、スクリプト内のこのコード
<script language="javascript" type="text/javascript">
function first(){
var nameContent=document.getElementById('full_name').value;
}
function second() {
first();
y=nameContent;
alert(y);
}
second();
</script>
要素full_nameの値を示すアラートが必要ですが、機能しないようです。理由は誰にもわかりませんか? :S
nameContent
は、first()
関数内で定義したとおり、first()
関数内にのみ存在します。
範囲を広げるには、関数の外側で定義します:
var nameContent;
function first(){
nameContent=document.getElementById('full_name').value;
}
function second() {
first();
y=nameContent; alert(y);
}
second();
グローバル変数はすぐに乱雑になるので、少し良いアプローチは値をreturn
にすることです:
function getFullName() {
return document.getElementById('full_name').value;
}
function doStuff() {
var name = getFullName();
alert(name);
}
doStuff();
NameContentスコープは最初の関数内のみです。そのような方法で値を取得することはありません。
var nameContent; // now it's global!
function first(){
nameContent = document.getElementById('full_name').value;
}
function second() {
first();
y=nameContent;
alert(y);
}
second();
最初の関数にreturnステートメントが必要です。
function first(){
var nameContent = document.getElementById('full_name').value;
return nameContent;
}
そして、あなたの2番目の機能では次のことができます:
function second(){
alert(first());
}
nameContent
変数は関数スコープ内にあり、その関数の外では見えないため、関数の外でnameContent
を使用する場合は、<script>
タグ内でglobal
を宣言し、次のようにvar
キーワードなしで内部関数を使用します
<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>