2012-09-20 145 views
2

我可以把它寫入循環嗎?有沒有更好的方法來編寫這個jQuery?

$(document).ready(function(){ 
    $('#slideItems1').bxSlider(); 
    $('#slideItems2').bxSlider(); 
    $('#slideItems3').bxSlider(); 
    $('#slideItems4').bxSlider(); 
    $('#slideItems5').bxSlider(); 
}); 

我使用bxSlider和使用多個畫廊,你需要調用滑塊和其關聯到每個項目。我有時每頁有超過200種產品。

+0

我也強烈建議該圖庫。非常簡單和光滑。 – user1686277

回答

10

你可以使用一個attribute starts-with selector選擇具有與「slideItems」開頭的ID的所有元素:

$('[id^="slideItems"]').bxSlider(); 

這與大多數的jQuery方法的情況下(大多數的插件將允許它太)。該方法應用於匹配集合中的每個元素,因此不需要循環。您可以看到您正在使用工具插件這個功能in its source(注意調用each,並注意this是指包含匹配的元素集合的jQuery對象):

this.each(function(){ 
    // make sure the element has children 
    if($(this).children().length > 0){ 
     base.initShow(); 
    } 
}); 
+0

我想嘗試並指定元素類型作爲其中的一部分,以提高選擇器的特異性 – CaffGeek

+0

@GaffGeek更具體嗎? – GnrlBzik

+1

@CaffGeek - 爲什麼?它是基於'id'值進行選擇的,這在文檔中是唯一的。它們具體如你應該得到的那樣。 –

6

給你的所有幻燈片項目一個班,然後只是做$('.slideItem').bxSlider();

+0

這實際上會工作嗎? – user1686277

+3

@ user1686277是的,它會實際工作。 –

+0

這沒有奏效。我爲每一個做了'class =「element」id =「slideItems1」'等等,並且做了這個,只是崩潰了頁面 – user1686277

3

給所有的元素一個類,然後使用該類選擇它們。

$('.slideItems').bxSlider(); 
2

短,但不是最優的重寫會(如果slideitems名單是固定的)

$(function(){ 
    $('#slideItems1, #slideItems2, #slideItems3, #slideItems4, #slideItems5').bxSlider(); 
}); 

但是我會強烈建議只是給他們所有的類。說slideritem並做

$(function(){ 
    $('.slideritem').bxSlider(); 
}); 
0

我建議給類名稱和使用類名訪問。

//slideritem is class name which you give to all which has to slider div 

$(function() 
{ 

    $('.slideritem').bxSlider(); 
}); 
相關問題