2013-01-16 21 views
0

我似乎無法得到這個工作,因爲你看到我的代碼如下要求選擇框的第一部分稱爲「#選擇_」,然後將隨機數結尾,即「#」 select_123「,所以我需要使用通配符。但[id^='select_']似乎不正確。jquery使用任何選擇框ID開始

我還需要將select元素「selected」選項傳遞給一個變量。

jQuery("[id^='select_']").change(function() { 

var optionValueText = jQuery.trim(jQuery($("[id^='select_']")+' :selected').text()); 

    //do something 

}); 

我知道這段代碼工作正常,如果我只是代碼id名稱,即jQuery(「#select_123」),但我沒有該選項。

+0

如果這些選擇框是相似的,你不能只用一堂課裝飾他們嗎? –

+0

這聽起來像是一種錯誤的方式來做你以後的事情。更好地使用數據*值或類。 – Ergec

回答

0

您可以使用"Starts With" selector :這樣

$('div[id^="select_"] :selected') 

開始有了選擇

Selects elements that have the specified attribute with a value beginning exactly with a given string.

0

你可以嘗試讓選擇通用,然後檢查ID,因爲他們更改:

$("select").change(function(){ 

    var n=$(this).attr("id").split("_"); 
    if(n == "select") 
    { 
    //do something here 
    } 
}); 

http://jsfiddle.net/ZTMKK/

0

問題是這樣的部分:

$("[id^='select_']")+' :selected' 

您正在嘗試連接一個jQuery對象有一個字符串,它會工作,但導致無效的選擇。

您可以簡單地使用:

'[id^="select_"] :selected' 

或者,因爲你已經有了具體<select>元素的引用,改變整個事情是:

jQuery("[id^='select_']").change(function() { 
    var optionValueText = jQuery.trim(jQuery(':selected', this).text()); 
    //do something 
}); 
+0

像寶石一樣工作,謝謝 – PhillBooth