只需打开小提琴并在搜索框中键入'rima',然后按下箭头,这里所有的li标签都在选择,但它应该选择搜索词在哪里等于li文本。jquery搜索文本高亮问题
这是我的DEMO和代码。
jQuery的
var $expandBtns = $('.expandBtn');
var $span;
//Search
$('input#catInput').keyup(function(e) {
var searchTerms = $(this).val();
console.log('Input change');
if (searchTerms == '') {
$expandBtns.each(function() {
var $subList = $(this).siblings('ul');
$subList.hide('slow');
});
}
$('#orgCat li').each(function() {
var $li = $(this);
var hasMatch = searchTerms.length == 0 || $li.text().toLowerCase().indexOf(searchTerms.toLowerCase()) > 0;
$li.toggle(hasMatch).removeClass('searchActiveLi');
if ($li.is(':hidden')) {
$li.closest('ul').show('slow');
}
if(e.keyCode == 40 && searchTerms.length !=0){ //highlighting selected li using down arrow key
$li.addClass('searchActiveLi');
}
});
上面的代码是我在我的小提琴使用任何疑问,请咨询我的意见。
谢谢@Hamza Abdaoui,它的工作,但一旦键入'ri',并检查它选择所有的孩子。它应该单独选择它意味着添加选择li的类 – nani0077
https://jsfiddle.net/nelsonfeel/420Lf338/16/检查所有名称显示在搜索框中。 – nani0077
@ nani0077,我不明白需要什么!你想添加类只有第一个'li',然后如果我再次按向下箭头它选择下一个'li'? –