Ped*_*ro 5 html javascript css jquery
下面的代码是一个简单的搜索。我试图计算列表上可见的“ li”,并在div“ totalClasses”中显示总数。然后,当用户搜索类别时,只更新可见类别的总数(li)。
我试过这样做('li:visble'),但是没有用。
ul = document.getElementById('myUl');
li = ul.getElementsByTagName('li');
aa = ul.getElementsByTagName('li:visible');
document.getElementById('totalClasess').innerHTML = (aa.length) + " Results";
function search() {
var input, filter, ul, li, a, aa;
input = document.getElementById('myInput');
filter = input.value.toUpperCase();
ul = document.getElementById('myUl');
li = ul.getElementsByTagName('li');
for (var i = 0; i < li.length; i++) {
a = li[i].getElementsByTagName('a')[0];
if (a.innerHTML.toUpperCase().indexOf(filter) > -1) {
li[i].style.display = '';
} else {
li[i].style.display = 'none';
}
}
}Run Code Online (Sandbox Code Playgroud)
<input type="text" id="myInput" onkeyup="search()" placeholder="Search for a class..." title="Type something">
<p class="results">Results</p>
<p id="totalClasess"></p>
<ul id="myUl">
<li><a href="#" class="header">Section 1</a></li>
<li><a href="#">Class 1 </a></li>
<li><a href="#">Class 2</a></li>
<li><a href="#">Class 3</a></li>
</ul>Run Code Online (Sandbox Code Playgroud)
每次调用事件处理程序时都需要更新计数。你可以这样做:
function search()
{
var input, filter, ul, li, a, aa;
input = document.getElementById('myInput');
filter = input.value.toUpperCase();
ul = document.getElementById('myUl');
li = ul.getElementsByTagName('li');
var liCount = 0;
for(var i=0; i<li.length; i++){
a = li[i].getElementsByTagName('a')[0];
if(a.innerHTML.toUpperCase().indexOf(filter) > -1){
li[i].style.display = '';
liCount++;
} else {
li[i].style.display = 'none';
}
}
document.getElementById('totalClasess').innerHTML = liCount + " Results";
}
Run Code Online (Sandbox Code Playgroud)