Я столкнулся с точкой, из которой я не могу думать дальше. Вкратце, у меня есть ul
сотнями li
, каждый li
имеет десятки слов в виде текста; в самом верху списка я поставил окно ввода для ввода пользователем нескольких ключевых слов; скажем, например, что я хочу отфильтровать из этого огромного списка только строки, в которых существуют следующие три слова в одной строке: «красная сладкая клубника». Будучи нажмите кнопку поиска, линии отфильтровываются и там у меня есть только две строки, содержащие слова Я заинтересован вКак найти несколько подстрок в одном запросе
LI1:. «Я едва ждать, чтобы съесть некоторые красные сладкие клубники»
li2 : «Это лето и красная сладкая клубника сейчас свежие»
До этого момента все в порядке.
Проблема возникает, когда три слова поиска отделяются другими словами или символами вдоль строки. Итак, взятый верхний пример, фильтр никогда бы не показать мне следующую строку:
Li3: «В красного и сладкие клубники находятся на рынке в настоящее время»
Итак, я лег вся функция фильтра и перебирать результаты от верхнего примера:
$(document).ready(function() {
var links = new Array();
$("h4").each(function(index, element) {
links.push({
text: $(this).text(),
element: element
});
});
$("#searchbutton").click(function() {
var query = $("#inputtext").val();
var querywords = query.split(',');
var results = new Array();
for(var i = 0; i < querywords.length; i++) {
for(var j = 0; j < links.length; j++) {
if (links[j].text.toLowerCase().indexOf(querywords[i].toLowerCase()) > -1) {
results.push(links[j].element);
}
}
}
$("h4").each(function(index, element) {
this.style.display = 'none';
});
for(var i = 0; i < results.length; i++) {
results[i].style.display = 'block';
}
});
});
можно ли найти несколько подстрок и получить результаты, даже если подстроки разделяются символами или другими словами?
В первом for-loop не должен 'querytext' быть' querywords'? – MikeM
Да, запросы. Я обновил! На этом форуме я только что изменил все «querytext» на «querywords» (чтобы подчеркнуть роли слов в моем примере), и я пропустил это. Благодарю. Тем не менее это не причина. – Auto4x4Motor
MikeM. Я пробовал свой код в соответствии с моими функциями, но, к сожалению, из-за моего плохого понимания синтаксиса RegEx я не смог заставить его работать. Сейчас я узнаю, что это такое об этом RegEx.Еще раз спасибо за ваш код. – Auto4x4Motor