這裏是我的瘋狂代碼:搜索功能,從下拉菜單中選擇添加和刪除選項
t.config.searchSpanInput.keyup(function() {
var searchCriteria = t.config.searchSpanInput.val();
$.each (t.config.promoInput, function (i, v) {
$.each ($(v + " option"), function (j, v) {
if (optObj[i][j].text().toLowerCase().indexOf(searchCriteria.toLowerCase(), 0) === -1) {
$(v).remove();
}
if (optObj[i][j].text().toLowerCase().indexOf(searchCriteria.toLowerCase(), 0) > -1) {
if (optObj[i][j].length === 1) {
$(v).append(optObj[i][j][0]);
}
}
if (! optObj[0][0]) {
$(v).prepend(optObj[0][0]);
}
});
});
});
所以......所有這一切都試圖做一個稍微簡單的任務。
- 在頁面加載時,獲取所有選擇框及其所有選項,並將它們存儲在一個數組中。 (在我的示例中,這部分代碼未顯示)
- 在搜索框的鍵控上遍歷所有選擇下拉列表及其選項。 - 如果在搜索框中輸入的文本與存儲在數組選項中的任何文本相匹配,則在選擇下拉列表中保留這些匹配選項。
- 如果輸入的文本與任何選項都不匹配,請從選擇下拉列表中刪除這些選項。
- 如果在搜索框中輸入的文本與存儲在數組中的選項中的任何文本相匹配,但它不存在於DOM中,則將其重新添加回去。
- 最後,請保留所有始終在頂部選擇框。該選項顯示「(全部)」。
任何幫助,將不勝感激。我目前在jquery.min.js的第3行獲得Node cannot be inserted at the specified point in the hierarchy
。 :(
你可以顯示't.config.promoInput'嗎? – ShankarSangoli 2012-01-31 21:22:02