jQuery : 여러 문자열을 검색하기 위한 선택기를 포함합니다.
예를 들면 다음과 같습니다.
<li id="1">Mary</li>
<li id="2">John, Mary, Dave</li>
<li id="3">John, Dave, Mary</li>
<li id="4">John</li>
"John"과 "Mary"가 포함된 모든 <li> 요소를 찾아야 하는 경우 jQuery를 어떻게 구성합니까?
하나의 문자열을 쉽게 검색할 수 있습니다.
$('li:contains("John")').text()
다음 의사 코드와 같은 것을 찾고 있습니다.
$('li:contains("John")' && 'li:contains("Mary")').text()
감사합니다!
정답.
찾기 위해서.li
메리와 존 모두를 포함하는 텍스트를 가지고 있는 것입니다.
$('li:contains("Mary"):contains("John")')
찾기 위해서.li
Mary 또는 John 중 하나를 포함하는 텍스트가 있는 것입니다.
$('li:contains("Mary"), li:contains("John")')
설명.
생각해보세요.:contains
수업 선언인 것처럼 말이죠.class
:
$('li.one.two'). // Find <li>'s with classes of BOTH one AND two
$('li.one, li.two'). // Find <li>'s with a class of EITHER one OR two
마찬가지입니다.:contains
:
$('li:contains("Mary"):contains("John")'). // Both Mary AND John
$('li:contains("Mary"), li:contains("John")'). // Either Mary OR John
데모
정답.
정확한 구문은 다음과 같습니다.$("li:contains('John'),li:contains('Mary')").css("color","red")
하지만 테스트해야 할 케이스가 많다면 jQuery의 성능이 매우 떨어진다는 것을 알게 되었습니다(특히 IE6에서는 오래되었지만 여전히 사용 중입니다).그래서 나만의 속성 필터를 쓰기로 했습니다.
사용 방법은 다음과 같습니다.$("li:mcontains('John','Mary')").css("color","red")
코드
jQuery.expr[':'].mcontains = function(obj, index, meta, stack){
result = false;
theList = meta[3].split("','");
var contents = (obj.textContent || obj.innerText || jQuery(obj).text() || '')
for (x=0;x<theList.length;x++) {
if (contents.indexOf(theList[x]) >= 0) {
return true;
}
}
return false;
};
어때.
$('li:contains("John"),li:contains("Mary")')
간단합니다.
$("li:contains('John'):contains('Mary')")
언급URL : https://stackoverflow.com/questions/2416803/jquery-contains-selector-to-search-for-multiple-strings
'programing' 카테고리의 다른 글
mysql 디렉토리 오류 초기화 중 (0) | 2023.10.07 |
---|---|
Powershell Copy-Item이지만 변경된 파일만 복사 (0) | 2023.10.07 |
XML 요소에 대한 표준 명명 규칙이 있습니까? (0) | 2023.10.07 |
AJAX 호출 시 URL을 업데이트하시겠습니까? (0) | 2023.10.07 |
NonUnique DiscoveredSqlAlias예외:중복된 sql 별칭 [ASC_]이(가) 발견되었습니다.ID] native-sql 쿼리 자동 검색 중 (0) | 2023.10.07 |