2012-08-15 63 views
1

我用下面的火一個js函數:的javascript「或」語句

$(document).ready(function() { 
    $('.gl a').do_this({ 

所以DIV類.gl中的任何鏈接激活功能do_this ..簡單現在

,我也想火在另一個DIV鏈接相同的功能也一樣,我可以這樣做:

($('.gl a') OR $('.gm a')).do_this({ 

嘗試所有的組合,但沒有工作至今,還是我只需要複製整個事情爲其他類?

+0

你想要它影響一個*或*另一個,但*不是*兩個? – 2012-08-15 22:16:44

+2

感謝您的-1 ...謹慎解釋原因?真的提高了學習和嘗試的慾望! – 2012-08-15 22:31:59

+1

恩,因爲我被通知了那條評論,我會迴應:倒票不是來自我的,但是當你問到問題時,你問了一個含糊不清的問題,而沒有澄清你的意圖。您還接受了一個答案,它似乎不符合您在問題中指定的小標準(「或」,接受的答案肯定是「AND」)。我不能說你爲什麼被低估,但是我建議在未來問問題之前可能試着研究一下。不要停止詢問或學習,只要嘗試展示一些研究成果,並解釋你所嘗試的和失敗的。 – 2012-08-15 22:37:36

回答

7

使用Multiple selectors像這樣:

$('.gl a, .gm a'); 

,如果任何一個存在,或者如果兩者都存在這將工作;我假設這是你想要的。

+0

這將是一個*和* – jAndy 2012-08-15 22:17:01

+0

嚴格來說,這不是一個'或'(但我不確定OP想要什麼)。 – 2012-08-15 22:17:08

+1

如果其中一個或兩個都存在,這將起作用,除非OP想要獨佔或。 – 2012-08-15 22:18:05

0

我想你可以使用一個三元識別特定人羣的影響,如果你真正的意思是異或:

var groupToAffect = $('.gl a').length ? $('.gl a') : $('.gm a'); 
groupToAffect.do_this(); 

此測試,選擇$('.gl a')返回元素和非空集,如果是,則將該選擇器返回的元素存儲在groupToAffect變量中。如果它返回零(falsey)元素,則它會將選擇器$('.gm a')返回的元素分配給該變量;然後與do_this()方法/插件一起使用。

+0

我想你的意思是'$('。gl a')。length? $('。gl a'):$('。gm a');' – Nimphious 2012-08-15 22:23:22

+0

@低語,我確實!爲什麼再次問好英語;已經有一段時間了......=/ – 2012-08-15 22:24:57

+0

哦,爲避免第二次查找,您應該也可以這樣做:'var gl = $('。gl a'),group = gl.length? gl:$(。gm a');'如果它被大量使用並且性能很重要,可能會很有用。 – Nimphious 2012-08-15 22:50:56

0

jQuery對象數組可以用concat組合在一起。然後遍歷所有的對象。

$([].concat($('.gl a'),$('.gm a'))).each(function(index){ 
    this.do_this({ //... 
});