나는 더 이상 생각할 수없는 지점을 발견했습니다. 간단히 말해서 ul
의 값이 li
이고 각 값이 텍스트로 수십 단어 인 li
입니다. 목록의 맨 위에는 사용자가 입력 할 수있는 입력 상자가 있습니다. 예를 들어, 같은 줄에 다음 세 단어가있는 행만 필터링하면됩니다. "red sweet strawberries". 검색 버튼을 누르면되고, 선이 필터링됩니다 거기 나는에 관심이 단어를 포함하는 두 개의 행이단일 쿼리에서 여러 하위 문자열을 검색하는 방법
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