我正試圖將一些jQuery行爲應用於兩個具有自己css類的元素。我如何在jquery中定位多個css選擇器
我選擇了兩個班是這樣的...
$(".product-contain, .page-id-31").find("a:has(img)").fancybox({
但是腳本只適用於第二選擇。我嘗試了各種方法,但不能想出一個合適的方法來做到這一點,而且我並不想僅僅爲其他選擇器複製代碼。
將腳本應用到上述兩個選擇器的正確方法是什麼?
在此先感謝。
我正試圖將一些jQuery行爲應用於兩個具有自己css類的元素。我如何在jquery中定位多個css選擇器
我選擇了兩個班是這樣的...
$(".product-contain, .page-id-31").find("a:has(img)").fancybox({
但是腳本只適用於第二選擇。我嘗試了各種方法,但不能想出一個合適的方法來做到這一點,而且我並不想僅僅爲其他選擇器複製代碼。
將腳本應用到上述兩個選擇器的正確方法是什麼?
在此先感謝。
使用each()通過選擇與every
元素returned
調用,目前fancybox()
只調用在選擇器返回zero
指數的元素。
$(".product-contain, .page-id-31").find("a:has(img)").each(function(){
$(this).fancybox({
})
嘗試
$.each([".product-contain", ".page-id-31",.....] , function(i, value){
var el = $(value);
el.find("a:has(img)").fancybox({options});
});
逗號分隔是應用多個選擇正確的方法。 find函數將嘗試匹配所應用到的上下文的所有後代。
您的選擇器可以改寫爲:'.classA a.classC,.classB a.classC'如果選擇器符合您的意圖,那麼您的過濾是正確的。
查找將不匹配上下文元素本身。
另外,如上所述,確保所應用的功能適用於整套結果,而不僅僅是第一個。 FancyBox只適用於集合中的第一個元素。在這種情況下,您可以應用.each函數來遍歷集合中的所有元素,並應用fancyBox
這完美地工作,並感謝您的解釋! – Adam
不客氣@亞當 – Adil