2009-11-09 97 views
0

我想知道這兩個表達式是否相同,因爲如果它們是,它會使這更容易。這些jQuery表達式是否相同?

$('div', this).filter(':not(.trigger)')...
$('div:not([class*=trigger])', this)...

this提供在其下的上下文來尋找指定的div

+0

順便說一句,表達式本身是完全正常的CSS選擇器,而不是jQuery特有的。 – bobince 2009-11-09 21:45:40

回答

2

它們本質上不相同。第二個也過濾出所有名稱中具有「觸發」類別的div,因此例如也是如此。 「anothertrigger」和「triggerfoo」。

您還可以使用

$('div:not(.trigger)', this)... 

這是恕我直言更清晰。

+0

在你糾正之前,他接受了你的答案。 :( – ChaosPandion 2009-11-09 21:08:12

+0

也許是因爲我最初確實給出了更清晰的例子,對此我很抱歉,你的回答最初也是令人困惑,因爲我沒有看到OP編輯了這個問題。 – BalusC 2009-11-09 21:15:18

3

版1採取所有div而不類觸發

版本2將屬性類中包含文本的所有div取爲觸發器。 這意味着與類mytrigger的div將是一個匹配。

Selectors

編輯

,並提供更新的問題,這將是等同於第一個版本。

$('div:not(.trigger)', this) 
+0

你能再看一遍嗎?我忘了第二個版本中的':not()'部分... – 2009-11-09 21:04:27

+1

Alexsander:如果你正在尋找一個相當於第一個語句的語句,你可以使用'$('div:not(.trigger))) 「'。 – 2009-11-09 21:05:24