2011-08-16 434 views
86

這裏是我的代碼開始的一個片段:jQuery的多個ID選擇

var myUpload = $("#upload_link").upload({bla bla bla 

基本上我想要做的就是用幾個不同的ID相同的呼叫......

我本來會認爲這會行得通,但它不會:

var myUpload = $("#upload_link,#upload_link2,#upload_link3").upload({ 

任何想法?

+0

什麼是你使用的上傳插件?你確定它遵循推薦的插件開發模式嗎? – bfavaretto

+0

它應該工作,必須是'upload'功能的東西。 http://jsfiddle.net/X7TAX/ – Kokos

回答

174

試試這個:

$("#upload_link,#upload_link2,#upload_link3").each(function(){ 
    $(this).upload({ 
     //whateveryouwant 
    }); 
}); 
+2

這個答案肯定會工作,但理想情況下,任何插件邏輯應該適用於所有匹配的元素。 – ShankarSangoli

31

如果給每個實例的類,你可以使用

$('.yourClass').upload() 
4

它應該。通常這就是你如何做多選擇器。否則,它可能不會像你試圖將三個上傳的返回值分配給相同的變量。

我會建議使用.each或者可能將返回推送到一個數組,而不是將它們分配給該值。

0

這應該可行,你可能需要一個逗號後的空格。

此外,您以後調用的函數必須支持一個對象數組,而不僅僅是一個單例對象。

14

可以使用多個id的方式,你寫道:

$('#upload_link, #upload_link2, #upload_link3') 

然而,這並不意味着DOM中存在這些ID,當你執行你的代碼。這也並不意味着upload是一個合法的功能。這也並不意味着upload的構建方式允許選擇多個元素。

upload是一個自定義的jQuery插件,所以你必須顯示upload是怎麼回事,我們才能夠幫助你。

8

確保upload插件實現了this.each,以便它將執行所有匹配元素的邏輯。它應該理想地工作

$("#upload_link,#upload_link2,#upload_link3").upload(function(){ });