2016-09-16 20 views
0

我正在尋找最好的方法來整理這個,或執行這種方法的最快,最好的方法。最快的方法來檢查,如果可能的數組類存在於一個使用jQuery的元素

我已經閱讀了很多關於stackoverflow的問題,並且無法工作這一個。我在下面有一個工作解決方案,但它似乎臃腫,可能有更快或更清潔的方法。

See test fiddle here.

我試圖運行的函數,但只有當一個類數組不要在我身上的標籤存在。

請參見下面的工作代碼...

// run scroll reveal if none of these ie classes exist in the body tag 
if (!$('BODY.ie-9,BODY.ie-8,BODY.ie-7,BODY.ie-6')[0]) { 

    // scroll reveal function 
    window.sr = new ScrollReveal({ reset: false }); 
    sr.reveal('FIGURE', { duration: 300 }); 

} 

看來,我能得到我想要的想要的結果是由具有列出BODY.ie-9,BODY.ie-8,BODY.ie-7,BODY.ie-6作爲選擇的唯一方法。

我想要的結果是運行子函數,如果這些.ie-類都不存在於body標籤中。

任何建議將不勝感激。由於

+0

您正在使用錯誤的選擇器。這足以使用,例如'.ie-7' – SaidbakR

+1

這是否意味着它會嘗試檢查dom中該類的每個元素?造成它需要更長的時間來檢查? – joshmoto

+0

我並不完全是指,我只是想從選擇器中刪除「BODY」。 – SaidbakR

回答

3

你甚至不需要jQuery的:

// run scroll reveal if none of these ie classes exist in the body tag 
if (!/(?:^|\s)ie\-[6-9](?:$|\s)/.test(document.body.className)) { 
    // ... 
} 

該解決方案只檢查class屬性上<body>和試驗類名稱是否使用正則表達式匹配ie-{character between 6 and 9, inclusive}。它還確保它匹配整個類名(用空格或字符串的開始/結尾填充)。

+1

Yeaaaah伴侶更具性能。太貼心了!正則表達式的人需要做到這一點!謝謝兄弟 – joshmoto

+0

非常感謝! – joshmoto

+0

對不起,再次打擾你,只是用你的方法,看到這個小提琴https:// jsfiddle。net/7md36thw/3 /我正在採用幾乎相同的方法,但是如何將純D的'DIV'元素作爲目標? – joshmoto

相關問題