javascript 대소문자 무시하기 급해요ㅠㅠ 웹 신님이 계시다면 도와주세요ㅠㅠㅠ
조회수 1765회
<li><a><img src="img/location/airport.png"><h3>공항은 어디 있나요?</h3><h3>Where is the airport?</h3></a></li>
$(document).ready(function () {
$("#search-mini").keyup(function () {
var k = $(this).val();
$(".content > ul > li > a").hide();
var temp = $(".content > ul > li > a > h3:contains('" + k + "')");
$(temp).parent().show();
});
});
html # h3태그 부분에서 Where is the airport? 라는 문장을 검색할 때 where 이라고 쳐도 나오게 하고 싶은데 대소문자 구분 무시 하는 방법 좀 알려주세요ㅜㅜ
-
(•́ ✖ •̀)
알 수 없는 사용자 - 〉
1 답변
-
구글링 하면 나오는 답변들로 대신할게요.
jQuery의 selector의 expression을 확장하면 됩니다.
https://jsfiddle.net/bipen/dyfRa/
이 예제는 jQuery 1.9.1기준이며
기본 expr 객체를 확장하여 다른 키워드(containsIN)로 사용할 수 있게 만들었으며
case insensitive를 위해 모든 문자열(textContent/innerText)을 소문자(lowercase)로 변환하여 비교했네요.
- 참고로 제가 검색한 키워드는 'jquery ignorecase :contains' 입니다. doodoji 2018.9.11 15:51
- 첨언하자면... DOM에 저렇게 빈번하게 접근하면 페이지 성능이 좋지 않습니다. 차라리 문자열들을 따로 배열이나 객체로 관리하고 그 검색된 인덱스를 순서를 맞춘 DOM에서 셀렉팅하여 조작하는 것이 성능상 이점이 높죠. 나중에 최적화의 필요가 생기면 한 번 시도해 보세요. 물론 검색해야 할 리스트가 적거나 heavy한 작업을 검색과 동시에 하지 않는다면 저라도 그냥 제가 답변한 방식대로 쓸 것 같긴 하네요. ㅎㅎ doodoji 2018.9.11 16:02
댓글 입력