我正在編寫一個代碼,從文本框中讀取此人的名稱,然後爲該名稱中的每個字母顯示一個符號/手勢。名稱中的每個字母都在FOR循環中讀取,並根據讀取的字母改變手勢/符號。循環停止工作後,頁面應該刷新,但由於某些未知原因,頁面在循環結束之前刷新。爲什麼在循環內部更改dom之前的代碼?
我決定用下面簡要的代碼模擬這種情況。當你運行它時,你會看到在執行循環中的代碼之前會出現警報。爲了方便,我還創建了一個JSFiddle HERE。
function show_name(name) {
for (var i = 0, len = name.length; i < len; i++) {
if (name[i] == "H") {
var text = document.getElementById("text_tag");
text.innerHTML = "Hillary Clinton was a hot baby in the past :D";
}
}
alert("But Bill preferred Monica :(");
}
<input type="text" id="name" size="18" style=" font-size:17px; margin-left:4px; " onchange="show_name(this.value)" />
<p id="text_tag"></p>
我沒有看到任何代碼可以刷新當前片段中的頁面。你能告訴我們整個代碼嗎? – ifvictr
'alert'出現在for循環之後。如果你在for循環之後放置一個'window.location.reload()',它可能會變得太快以致於看不到任何事情正在發生。 – putvande
你可以使用'setTimeOut(function(){/ *你的代碼重新加載頁面* /},/ *時間直到重新加載* /)' – Lucas