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

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

來個大佬解釋下

<!DOCTYPE html>

<html>

<head>

<meta charset="utf-8">

<title>W3Cschool教程(w3cschool.cn)</title>

</head>

<body>


<p>點擊按鈕循環代碼5次。</p>

<button onclick="myFunction()">點擊這里</button>

<p id="demo"></p>

<script>

function myFunction(){

? ? var x="";

? ? for (var i=0;i<5;i++){

? ? ? ? x=x+"該數字為 " + i + "<br>";

? ? }

? ? document.getElementById("demo").innerHTML=x;

}

</script>

</body>

</html>


//里面的 x=x+"該數字為 " + i + "<br>";? 為什么要在前面加個 x+


正在回答

4 回答

如果不加x+的話,每次循環時x的值都是”該數字為 i“,循環完后,x的值只是”該數字為 4+換行“;加了x+的話,第一次循環時x的值是”該數字為 1+換行“,第二次循環時x的值是”該數字為 1+換行?該數字為 2+換行“,最后循環完后就是你要的格式了。

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

因為這段代碼里是把所有需要顯示的文本放在x這一個變量里的,代碼里for循環:

for?(var?i=0;i<5;i++){
????x=x+"該數字為?"?+?i?+?"<br>";
}

是循環給x變量追加文本,直到循環結束后再通過innerHTML直接把值給到id為demo的p元素來顯示:

document.getElementById("demo").innerHTML=x;

如果你想把x+去掉也可以,只是文本輸出的方式和位置也要換一下,要換在for循環里,每個循環輸出一次,如將函數myFunction里內容替換為:

var?x="";
for?(var?i=0;i<5;i++){
???x="該數字為?"?+?i?+?"<br>";
???document.write(x);
}

這樣就可以就可以達到同樣的效果,只是document.write會把函數調用前的頁面全部覆蓋掉,所以還是原來那種方式比較好。

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

keydew

第二種方法document.write(x);可以換成document.getElementById("demo").innerHTML+=x; 這樣就不會覆蓋原來的頁面
2019-04-01 回復 有任何疑惑可以回復我~

想實現第一個 但是為什么要在i前面加個x+? 我刪了之后為什么直接就變成該數字為4呢

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

阿穆哥哥

你這個代碼是先進行循環結束后再進行賦值的,當然當x=4的時候結束了,跳出循環之后,那個.innerHTML被賦值為4了,你想實現第一個效果可以把那個賦值語句放進循環
2019-03-29 回復 有任何疑惑可以回復我~

你這個是想實現:該數字為 0

該數字為 1

該數字為 2

該數字為 3

該數字為 4

還是想實現:該數字為0

該數字為 0該數字為 1

該數字為 0該數字為 1該數字為 2? ? 這樣的效果?

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

懶得起名字_3 提問者

想實現第一個 但是為什么要在i前面加個x+ 我刪了之后為什么直接就變成該數字為4呢
2019-03-29 回復 有任何疑惑可以回復我~

舉報

0/150
提交
取消

來個大佬解釋下

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

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

幫助反饋 APP下載

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

公眾號

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