亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定

想問一下var pwd放在外面不是全局變量嗎?為什么要放在函數里面才行

<!DOCTYPE HTML>

<html>

<head>

<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />

<title> 鼠標點擊事件 </title>

<script type="text/javascript">


var pwd=document.getElementById("password").value;

? ? function message(){

? ? ? ??

? ? ? ? if(pwd==""){

? ? ? ?confirm("請輸入密碼后,再單擊確定!");?

? ? ? ? }else{

? ? ? ? ? ? ?alert("登陸成功");

? ? ? ? }

? ? }

</script>

</head>

<body>

<form>

密碼:<input name="password" type="password" id="password">

<input name="確定" type="button" value="確定" onclick="message()"/>

</form>

</body>

</html>


正在回答

2 回答

按照加載當順序,當你加載 js?的時候,DOM?都還沒有構建完成呢,你拿到的 document.getElementById("password")?是個?null,null?怎么會有?value?呢?所以一定會報錯。

放在函數里面是因為當你點擊的時候?DOM?已經構建完成了,所以 pwd?是一定存在的,所以不會報錯。

另外放在函數外面的確是全局變量,但是在網頁加載順序上不對,js?是個腳本語言,不能沒有?DOM?的時候你去操作了?DOM,那瀏覽器渲染這個?DOM 的時候是聽誰的。






2 回復 有任何疑惑可以回復我~

你可以把整段script移到body那邊去,就可以寫成全局變量了。個人理解是網頁按順序加載下來,如果全局變量的話,取不到后加載的節點。等網頁加載完成,在聲明變量才可以取到,所以寫在函數內。

1 回復 有任何疑惑可以回復我~

舉報

0/150
提交
取消

想問一下var pwd放在外面不是全局變量嗎?為什么要放在函數里面才行

我要回答 關注問題
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號