この最初に目に見えない作りのli要素はHTMLです:フィルタリングされたHTMLリスト:
<input type="text" id="myInput" onkeyup="myFunction()" placeholder="orasul tau..">
<ul id="myUL">
<li>Bucuresti</li>
<li>Cluj</li>
<li>Timisoara</li>
</ul>
そして、これは私のザ・スクリプトです:
var value = $('#myInput').val();
if(value.length == 0) {
$("#myUL li").style.display = "none";
}
$('#myInput').bind('keyup', function() {
var searchString = $(this).val();
$("ul li").each(function(index, value) {
currentName = $(value).text()
if(currentName.toUpperCase().indexOf(searchString.toUpperCase()) > -1) {
$(value).show();
} else {
$(value).hide();
}
});
});
私はテキストに基づいて、ULの要素をフィルタリングします入力に
初期のif
の文はすべて正常に動作していますが、すべてのli
要素の初期値はdiplay:none
であることが必要です。それを追加すると、フィルタリング全体が無効になります。if
どのように私はそれを行うことができるすべての可能な解決策?
ご協力いただければ幸いです。
は良い作業、ありがとうございます!しかし、入力ボックスに何らかのテキストを書いてそれを削除した後も、すべての要素はまだ残っていますか?どのように私はそれを修正するための任意のアイデア? –
@ M.Vlad 'searchString'が空でないことを確認し、それをshow/hide条件の一部として使用します。更新された回答を確認します。 – dfsq
作業中!ありがとうございました! –