有没有可能隐藏
如果可能的话,我希望得到一种无需使用jQuery(Prototype可以)的答案。但如果没有jQuery,则可以使用jQuery。
HTML:
<ol>
中特定的<li>
而不改变每个列表项前面的数字?我正在尝试制作一个搜索功能,该功能仅显示与用户输入匹配的<li>
。但是,如果要隐藏第二个<li>
,它将更改第三个<li>
前面的数字为2,但它应该保持为3。如果可能的话,我希望得到一种无需使用jQuery(Prototype可以)的答案。但如果没有jQuery,则可以使用jQuery。
HTML:
<label>Search: <input type="text" id="search"/></label>
<button id="clear">Clear</button>
<div id="list">
<ol>
<li>Item 1</li>
<li>Item 2</li>
<li>Item 3</li>
<li>Item 4</li>
</ol>
</div>
Javascript:
window.onload = function(){
document.getElementById("search").onkeyup = updateList;
document.getElementById("clear").click = clearInput;
}
function updateList(){
var list = document.getElementById("list");
var listitems = list.getElementsByTagName("li");
for(var i = 0; i < listitems.length; i++) {
var current = listitems[i].innerHTML.toLowerCase();
if(current.indexOf(document.getElementById("search").value.toLowerCase()) != -1) {
listitems[i].style.display = "list-item";
} else {
listitems[i].style.display = "none";
}
}
}
function clearInput(){
document.getElementById("search").value = "";
updateList();
}