[英]javascript: get a function's variable's value within another function
好的,所以我體內有以下代碼:
<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;
}
然后在第二個函數中可以是:
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>
在ES5中執行此操作的OOP方法是使用this關鍵字將該變量變為屬性。
function first(){
this.nameContent=document.getElementById('full_name').value;
}
function second() {
y=new first();
alert(y.nameContent);
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.