2009-10-15 48 views
2

我有一個jQuery腳本,用於選擇其中包含'Phone'的所有ID。但是,我有一小部分,如果他們在課堂上,則不需要選擇它們。如何使用jQuery選擇不在特定類中的ID

我有什麼,按照我的理解它的方式是這樣的:

$("[id*='Phone']:not('referencePhones')").doSomething(); 

我缺少什麼?

.referencePhones是父類。即:

div class="referencePhones" 
    span id="Phone" 

回答

3
$("[id*='Phone']").parent(":not('.referencePhones')").css("color","red"); 

和你的代碼看起來像下面這樣吧?

<div class="referencePhones"> 
    <span id="Phone2">phone2</span> 
    <span id="Phone3">phone3</span> 
    <span id="Phone4">phone4</span> 
    <span id="Phone5">phone5</span>  
</div> 

<div class="zzz"> 
    <span id="Phone6">phone6</span> 
    <span id="Phone7">phone7</span> 
    <span id="Phone8">phone8</span> 
    <span id="Phone9">phone9</span>  
</div> 
+2

我知道你接受了這個答案,雖然它「有效」,但它不是最好的解決方案。酸葡萄,但我的解決方案要快得多,因爲它只會搜索帶有手機ID而不是頁面上每一個元素的'span',就像這個解決方案所說的那樣。 – Jason 2009-10-15 22:51:36

+2

Jason說的是真的。 – easement 2009-10-16 12:43:58

4

一個點?

$("[id*='Phone']:not(.referencePhones)").doSomething(); 
        ^
+0

不。試過了。那個班是父母。 .referencePhones #Phones – Mikecancook 2009-10-15 20:48:28

9

擺脫你的內部報價:

$('someElement[id*=Phone]:not(.referencePhones)').doSomething(); 

編輯

$('span[id*=Phone]').parent('div:not(.referencePhones)').doSomething(); 
+0

還是沒有愛。 ; o( – Mikecancook 2009-10-15 20:59:36

+0

你必須使用filter()和is(!referencePhones)一起使用;當我有一段時間生病時,用你編輯的新信息給你寫選擇器 – adardesign 2009-10-15 21:07:13

+0

,事情會改變... – Jason 2009-10-15 21:41:43

0

OP要求選擇帶有「phone」的id的跨度,只要它們不包含在class爲「referencePhones」的div中。所有使用parent()的解決方案都會返回父div,而不是span。

以下選擇返回跨度:

$('div:not(.referencePhones) span[id*="Phone"]') 
相關問題