我想創建一個動態列表,因此當用戶執行搜索時,它將重新填充列表。問題是,我似乎無法使不變的常量來存儲原始的div內容。每次調用函數get的變量都會被重新初始化。功能調用後保持Javascript常量
有沒有辦法實現這一點,而不使用cookie?任何幫助真誠讚賞。代碼不完整,因爲我無法通過這一步,但如果您認爲我完全走向錯誤的方向,請告訴我。
const originalList = document.getElementById('patientList')。getElementsByTagName('li'); frozen = Object.freeze(originalList);
<script>
const originalList = document.getElementById('patientList').getElementsByTagName('li');
frozen = Object.freeze(originalList);
var newList = '';
var found = false;
function filterPatients(){
var searchQuery = document.getElementById('search');
var query = searchQuery.value;
var listContainer = document.getElementById('patientList');
var patientList = listContainer.getElementsByTagName('li');
for (var i = 0; i < originalList.length; i++){
var link = patientList[i].getElementsByTagName('a');
var link = link[0].text;
/** remove whitespaces for easy comparison **/
link = link.toLowerCase();
query = query.toLowerCase();
link = link.replace(/\s/g, "");
query = query.replace(/\s/g, "");
/** check every character in query **/
if (link.length > query.length && link.substring(0,query.length) == query){
found = true;
newList += '<li>' + patientList[i].innerHTML + '</li>';
}
}
if (found == true){
listContainer.innerHTML = newList;
newList = '';
}
else{
listContainer.innerHTML = "<li>No patient by that name</li>";
}
console.log(frozen);
}
</script>
您在哪個瀏覽器中運行此代碼? –
@Daniel Granger,我測試了firefox,chrome和safari上的代碼,所有結果都一樣。 –