У меня есть массив строк в jQuery. У меня есть еще один массив ключевых слов, которые я хочу использовать для фильтрации массива строк.
Мои два массива:
var arr = new Array("Sally works at Taco Bell", "Tom drives a red car", "Tom is from Ohio", "Alex is from Ohio");
var keywords = new Array("Tom", "Ohio");
Как я могу фильтровать массив arr
, используя массив keywords
в jQuery? В данной ситуации это отфильтрует "Sally works at Taco Bell" и оставит остальные.
Ниже приведен фактический код, который я использую.
var keywords= [];
var interval = "";
var pointer = '';
var scroll = document.getElementById("tail_print");
$("#filter_button").click(
function(){
var id = $("#filter_box").val();
if(id == "--Text--" || id == ""){
alert("Please enter text before searching.");
}else{
keywords.push(id);
$("#keywords-row").append("<td><img src=\"images/delete.png\" class=\"delete_filter\" /> " + id + "</td>");
}
}
);
$(".delete_filter").click(
function(){
($(this)).remove();
}
);
function startTail(){
clearInterval(interval);
interval = setInterval(
function(){
$.getJSON("ajax.php?function=tail&pointer=" + pointer + "&nocache=" + new Date(),
function(data){
pointer = data.pointer;
$("#tail_print").append(data.log);
scroll.scrollTop = scroll.scrollHeight;
});
}, 1000);
}
Вся цель этого заключается в том, чтобы позволить пользователю фильтровать результаты журнала. Пользователь выполняет действие, которое запускает startTail()
, а $.getJSON()
извлекает объект JSON, который строится функцией PHP, и печатает результаты. Работает безупречно. Теперь я хочу дать пользователю возможность фильтровать входящие элементы хвоста. Пользователь нажимает кнопку фильтра, jQuery берет текст фильтра и добавляет его в массив keywords
, затем data.log
из объекта JSON фильтруется с помощью массива keywords
и затем добавляется на экран.
У меня также не работает функция удаления фильтра. Может быть, кто-нибудь сможет помочь мне с этим.