我想知道這兩個表達式是否相同,因爲如果它們是,它會使這更容易。這些jQuery表達式是否相同?
$('div', this).filter(':not(.trigger)')...
$('div:not([class*=trigger])', this)...
(this
提供在其下的上下文來尋找指定的div
)
我想知道這兩個表達式是否相同,因爲如果它們是,它會使這更容易。這些jQuery表達式是否相同?
$('div', this).filter(':not(.trigger)')...
$('div:not([class*=trigger])', this)...
(this
提供在其下的上下文來尋找指定的div
)
它們本質上不相同。第二個也過濾出所有名稱中具有「觸發」類別的div,因此例如也是如此。 「anothertrigger」和「triggerfoo」。
您還可以使用
$('div:not(.trigger)', this)...
這是恕我直言更清晰。
在你糾正之前,他接受了你的答案。 :( – ChaosPandion 2009-11-09 21:08:12
也許是因爲我最初確實給出了更清晰的例子,對此我很抱歉,你的回答最初也是令人困惑,因爲我沒有看到OP編輯了這個問題。 – BalusC 2009-11-09 21:15:18
號
版1採取所有div而不類觸發。
版本2將屬性類中包含文本的所有div取爲觸發器。 這意味着與類mytrigger的div將是一個匹配。
編輯
,並提供更新的問題,這將是等同於第一個版本。
$('div:not(.trigger)', this)
你能再看一遍嗎?我忘了第二個版本中的':not()'部分... – 2009-11-09 21:04:27
Alexsander:如果你正在尋找一個相當於第一個語句的語句,你可以使用'$('div:not(.trigger))) 「'。 – 2009-11-09 21:05:24
順便說一句,表達式本身是完全正常的CSS選擇器,而不是jQuery特有的。 – bobince 2009-11-09 21:45:40