2013-10-02 49 views
1

我想選擇所有類.TAG的不在傳遞給函數jQuery的選擇與過濾器和排除

這裏的元素是我得到的:

$("a.tag").filter(":visible").not("\"[id='" + aTagID + "']\"").each(
    function place(index, element) { 
     log(" checking element " + element.id); 
}); 

aTagID傳遞給該功能是我想從選擇中排除的調用元素的ID。日誌是一個簡單的做一個console.log的函數。

以下是我在控制檯中看到:

Uncaught Error: Syntax error, unrecognized expression: "[id='t1']" 
+0

告訴它的鴨原理再次擊中!在記錄了問題,我得到了解決:不需要雙引號。它在我把它們拿走的時候起作用。 。不是([ID = 'T1'])是它應該是什麼樣子。 – Metaphor

+0

哈哈我相信他們稱之爲**橡膠鴨調試** http://en.wikipedia.org/wiki/Rubber_duck_debugging – mattytommo

回答

2

只要做到這一點的一個選擇(#可以用來代替屬性選擇器的ID):

$("a.tag:visible:not(#" + aTagID + ")").each(
+0

是的,這個效果要好得多。我之前嘗試過,但也遇到了同樣的問題 - 在它周圍加上引號。我更喜歡使用.not()。使代碼更清晰一些。謝謝! – Metaphor

3

嘗試使用在你的過濾器:not以及使用的ID選擇#

$("a.tag").filter(":visible:not(#" + aTagID + ")").each(function() { 
2

豈不是:

$("a.tag").filter(":visible").not("\"#id='" + aTagID\")").each(function() { 

.not() jQuery的方法需要的選擇器。我不相信"[id='t1']"會工作。

或者你可以嘗試使用:not選擇:

$("a.tag").filter(":visible:not(#" + aTagID + ")").each(function() {