2012-07-02 2 views
3

id가 주어진 문자열을 포함하지 않는 요소를 선택하는 방법을 알고 있습니까? id가 주어진 단어를 포함하지 않는 요소를 선택합니까?JQuery 선택기 ID가 시작되지만 끝나지 않음

예 :

<div id="my_div"> 
    <div id="tab_abcd">...</div> 
    <div id="tab_efgh">...</div> 
    <div id="tab_jklm">...</div> 
    <div id="tab_nopq">...</div> 
    <div id="tab_rstu">...</div> 
    <div id="tab_vwxy">...</div> 
</div> 

내가 "tab_"로 시작하지만 "nopq"로 완료되지 않는 사업부를 선택합니다. 이 div는 동적으로 생성되므로 nt-child를 사용할 수 없습니다. 따라서 순서를 알 수 없습니다.

당신은이 목적을 시도 할 수
+0

아래 답변은 훌륭합니다. 그러나 생성 된 html을 제어 할 수 있다면 div에 '클래스'태그를 추가하고 그런 식으로 선택하는 것이 좋습니다. – rkw

답변

9
$('[id^="tab"]:not([id$="nopq"])') 

http://jsfiddle.net/zerkms/yB44A/

+0

감사합니다. 작동합니다! –

+0

그리고 우리가 필요로하지 않는 것들을 많이 추가 할 수 있습니다 : $ ('[id^= "tab"] : not ([id $ = "nopq"]) : not ([id $ = "rstu"])') –

+0

@Yoong Kim : 예,'[...]'또는': not()'셀렉터는'.classname'과'# id'와 동일하므로 원하는대로 연결할 수 있습니다 – zerkms

2

:

$('div:not([id*="given word"])') 
+0

"은"nopq "로 끝나지 않습니다."-'* ='false-positives가 발생합니다. – zerkms

3

starts-with, notends-with를 사용하여 :

$('div[id^="tab_"]').not('div[id$="nopq"]').each(function(){ 
    // whatever 
}); 

working DEMO

+0

어쩌면이게 작동하지만 내 나는 다른 selector를 내부에 가지고 있는데, 마지막 코드는 다음과 같다. $ ('[id^= "details_product _"] : not ([id $ = "functiontestreports"]) a [name^= "togglePhoto _"] '딸깍 하는 소리'); –

1
$('div[id^="tab_"]:not(div[id$="nopq"])'); 

선택기 및 예제에 대한 자세한 정보는 JQAPI Documentation을 확인하십시오.