我正在處理待辦事項列表應用程序,用戶可以在其中將用戶添加到列表項目中以進行列表項目的搜索以及搜索列表項目。下面我正在研究搜索功能。現在發生的事情是,我將一個li項添加到頁面上,顯示「你找到」+用戶搜索的名字+匹配該特定項目的任務。但是,我不知道該怎麼做就是匹配使用該名稱的每個列表項目。例如,我可以讓一個名叫鮑勃的人做三個不同的任務。現在這個搜索將只匹配第一個,但我想匹配所有三個。有什麼建議麼?匹配每個字符串的使用
function search() {
var searchTerm = document.getElementById("search").value;
searchTerm = searchTerm.trim();
if(searchTerm == null || searchTerm == "") {
alert("Please enter a string to search for");
return;
}
else {
var todoObj = undefined;
results = undefined;
re = undefined;
for(var i = 0; i < todos.length; i++) {
todoObj = todos[i];
re = new RegExp(searchTerm, "ig");
resultsOne = todoObj.who.match(re);
if(resultsOne) {
var ul = document.getElementById("test");
var li = document.createElement(li);
li.className = "listItem";
li.innerHTML = "You found " + todoObj.who + " who needs to " + todoObj.task;
ul.appendChild(li);
}
}
}
}
在我看來喜歡它應該工作。每個匹配創建一個新的LI並將其附加到UL。你可以創建一個演示它的小提琴嗎? – Barmar 2013-03-08 20:23:57
它看起來像是在'for'循環的每次迭代中執行搜索匹配,然後立即顯示結果。我可能會建議你保留一個匹配的待辦事項列表,然後最後輸出結果。 – sweetamylase 2013-03-08 20:24:21