因此,我有一個鍵控函數,可以從MySQL表中檢索數據,然后顯示它。但是,如果更改了字母,它將再次檢索數據。請參閱下圖“當前狀態”和“在檢查器中”它應該做的只是用新的建議替換這些建議,而不是將其添加到列表中編輯:Shoaeb的解決方案有效,但不是他建議的方式。document.getElementById('schoolListMenu').innerHTML="";我在調用鍵控函數后立即添加了該行。這將清除 div 中的內容,并在用戶停止鍵入后將其替換為更新的內容。如果用戶再次按某個鍵,它將再次清除 div 并附加更新的結果。編輯2:更新了JS代碼var timeout = null;function getSchool(schoolType){ if(schoolType1.classList.contains('active') || schoolType2.classList.contains('active')) { schoolNameField.onkeyup = function(e) { document.getElementById('schoolListMenu').innerHTML=""; clearTimeout(timeout); timeout = setTimeout(function() { var query = e.target.value; console.log(query); var xmlhttp = new XMLHttpRequest(); xmlhttp.onreadystatechange = function() { if (this.readyState === 4 && this.status === 200) { var schoolResult = this.responseText; schoolResult = schoolResult.split("|"); for(var i = 0; i < schoolResult.length; i++) { var schoolSuggestion = document.createElement('div'); schoolSuggestion.id = 'schoolSuggestion'+i; schoolSuggestion.className = 'item'; schoolSuggestion.innerText = schoolResult[i]; document.getElementById('schoolListMenu').appendChild(schoolSuggestion); } } }; xmlhttp.open("GET", "scripts/schoolLookup.php?type="+schoolType+"&name="+query, true); xmlhttp.send(); }, 500); }; }}我如何讓它替換內容而不是添加新的div?我覺得我了解問題是什么,知道解決方案是什么,但我無法用言語表達
防止 xmlhttp 函數在鍵控時再次運行
RISEBY
2022-09-16 20:59:05
