2014-02-19 60 views
0

如果一個函數添加到jQuery的,像這樣:爲變量名稱中的函數提供一個特定的字符?

 $.fn.boxLoader = function() { 
      var FilterSelect = ($("[id^='filter_a_selector_']")); 
      // do things to FilterSelect 
      return this; 
    }); 

然後當一個特定的動作發生,我運行的功能。

我有這些名字多個元素:

#filter_a_selector_1 
#filter_b_selector_1 
#filter_a_selector_2 
#filter_b_selector_2 

所以我使用了^選擇將其全部選中不管在1或2的結局,但我怎麼能養活功能的「一」或一個「b」取決於需要?

我想在某些情況下也能夠在filter_b_selector_上運行該函數,而不必複製函數並將其稱爲新的+只更改filter_a_selector以在其中包含「b」。

所以最好它會是這個樣子:

$.fn.boxLoader = function(filter_a_or_b) { 
      var FilterSelect = ($("[id^='filter_{filter_a_or_b}_selector_']")); 
      // do things to FilterSelect 
      return this; 
    }); 

或者類似

+1

你真的應該學習如何使用類... –

+0

在這種情況下我不能使用類,id /類來自我不能控制的東西,並且有多個元素都是不同的,並且需要一個ID來進行定位。我簡化了這個例子。 – user3245789

回答

2

jQuery的接受字符串連接:

$.fn.boxLoader = function(filter_a_or_b) { 
     var FilterSelect = ($("[id^='filter_"+ filter_a_or_b + "_selector_']")); 
     // do things to FilterSelect 
     return this; 
}); 
+0

這不是jQuery執行字符串連接... –

+0

@JanDvorak沒有說它執行,我說它接受並且意味着你*可以*在jQuery實例化中將字符串連接起來。 –

相關問題