2016-08-22 2 views
2

HTML:Как использовать фильтр JQuery?

<div class="searchChkBoxDiv"><input id="searchchk_input"></div> 
<div class="searchElemDiv"></div> 

ЯШ:

var checkBoxVals = ["sandeep", "suresh", "rajesh", "ramesh", "pad"]; 
for(var i = 0; i<checkBoxVals.length; i++){ 
      $('.searchElemDiv').append('<div id='+checkBoxVals[i]+'><input type="checkbox"><span>'+checkBoxVals[i]+'</span></div>'); 
      } 

У меня есть код выше, я хотел бы, чтобы отфильтровать элементы в searchElemDiv добавленные Java Script.

Я попытался, как показано ниже, но получить не удалось захватить элементы, которые были отфильтрованы фильтром в массиве.

$('#searchchk_input').keyup(function(){ 
     var val = $(this).val(); 
     $('.searchElemDiv').empty(); 
     var opt = checkBoxVals.filter(function(idx, el) { 
      return val === '' || el.indexOf(val) == 0; 
      }); 
     for(var i=0; i<opt.length; i++){ 
      $('.searchElemDiv').append('<div id='+opt[i]+'><input type="checkbox"><span>'+opt[i]+'</span></div>'); 
      } 
     }); 

Когда я даю первый ключ это удаление всех элементов из searchElemDiv DIV, а когда удалить весь ввод из поля ввода снова searchElemDiv заполняется со всеми элементами, как страница загрузится, но между ними одного символа также не работает ,

Не могли бы вы помочь мне разобраться в этом.

+0

'checkBoxVals' не является' jQuery-object' – Rayon

+0

http://stackoverflow.com/a/14274386/3986045 Я выполнил следующий ответ, чтобы реализовать поиск в selectbox. И пытаюсь реализовать его для поиска в элементах div. –

+0

Спасибо, ребята, что помогли мне. я изменил код выше, как вар неавтоматического = checkBoxVals.filter (функция (элемент, индекс) { \t возврата Val === '' || element.indexOf (Val) == 0; }); сейчас он работает нормально. Спасибо @Quentin Роджер. –

ответ

0

обратного вызова для возврата фильтра три параметра:

// the first is for the value the second for the index 
function callbackfn(value, index, array1) 

Посмотрите здесь:

https://msdn.microsoft.com/en-us/library/ff679973(v=vs.94).aspx

Небольшой пример:

var checkBoxVals = ["sandeep", "suresh", "rajesh", "ramesh", "pad"]; 
 

 
var opt = checkBoxVals.filter(function(el, idx, array) { 
 
    console.log("index :"+idx); 
 
    console.log("element :"+el); 
 
    console.log("the full array :"+array); 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>

+0

Спасибо, я думаю, что я использовал interchangebly индекс и элемент. я изменил, как \t \t \t вар неавтоматического = checkBoxVals.filter (функция (IDX, эл) { \t \t \t \t возвращение Val === '' || idx.indexOf (Val) == 0; \t \t \t \t}); Теперь он работает нормально. –

+0

Рад помочь, и добро пожаловать в СО. Если этот ответ или любой другой решают вашу проблему, отметьте его как принятый. –

Смежные вопросы