2009-08-27 28 views
1

我有一個jQuery選擇與語法如下:在jQuery選擇的AND和OR組合

$('input[type=image]').not('.xyzClass').click(function{ 
    //some functionality 
}); 

所以這使特定的點擊功能,所有這些都是類型的圖像的部件,沒有階級xyzClass

*****我已修改該問題以反映最新更改,以下某些答案對於以前的版本是正確的,但可能無法對修改後的版本保持正確。爲此道歉。

我們需要一個符合條件的OR條件。這樣,應選擇 這是「輸入」有類型圖像的任何組件如果

  1. 類不是xyzClass
  2. id包含字符串someIdString

能否請您與修改幫助在現有的選擇器?

乾杯。

回答

2

更新答案

$('*:not(.xyzClass)[id*=containsThisValue]') 

爲您更新的問題,雖然這不是最佳的,我會建議指定儘可能多的,你可以。

原來的答覆:

function someSpecificFunctionality() { 
} 

$(els) 

.click(someSpecificFunctionality) 
.data('someSpecificFunctionality', true) 


$(els).filter(function() { 

    return 
     $(this).not('.xyzClass') && 
     $(this).data('someSpecificFunctionality') == true 

}); 
+0

接受這個作爲答案,因爲考慮到我未來可能有更多的條件,這是更靈活的方式。 – Priyank 2009-08-27 05:41:42

0

做一個「OR」使用逗號:

$('input[type=image]') 
    .not(".xyzClass,[onclick*='someSpecificFunctionality()']") 
    .click(...); 

我不知道怎麼你雖然定義的onclick:是因爲你的HTML或編程方式添加?

+0

這將會把一個沒有條件對第二個 「點擊」 檢查也。不是嗎?這不是我們想要的解決方案。 – Priyank 2009-08-27 05:34:39

+0

哦 - 這個問題在原始形式上有點模棱兩可。 – nickf 2009-08-27 06:06:27

2
$(":image:not(.xyzClass),:image[onclick*='someSpecificFunctionality']"); 
+0

謝謝。這幫助我得到了正確的答案。 – Priyank 2009-08-27 05:41:10