私はそれ以上考えることができない点に出くわしました。簡単に言えば、私は数ul
百のを持っておりli
、それぞれli
がテキストとして数十の単語を持っています。リストの一番上に、ユーザーがいくつかのキーワードを入力するための入力ボックスを配置しました。たとえば、その巨大なリストから、同じ行に次の3つの単語が存在する行のみを除外したいとします:「赤い甘いイチゴ」。検索ボタンを押すと、行が除外され、興味のある単語を含む行が2行だけになります。
li1:「赤い甘いイチゴを食べるのが待ちきれません」
li2:「夏で、赤い甘いイチゴは今新鮮です」
この時点まで、すべてが正常です。
この問題は、検索された3つの単語が文字列に沿って他の単語または文字で区切られている場合に発生します。したがって、上の例では、フィルターに次の行が表示されることはありません。
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';
}
});
});
サブストリングが文字や他の単語で区切られている場合でも、複数のサブストリングを検索して結果を取得することは可能ですか?