2011-05-12 87 views
0

我有一個選擇標記,看起來像這樣:返回選擇標籤的所有內容與jQuery

<select name="TZSelector" id="TheTZSelector"> 
    <option>add another timezone</option> 
    <option>------------------------------------------------------</option> 
    <option></option> 
    <option value="-8.00">(Pacific Time) San Francisco</option> 
    <option value="-7.00">(Mountain Time) Denver 
...... 
</select> 

我怎樣才能返回所有在該選項的值。請注意,選項1,2和3沒有值,但所有其他人都這樣做。 我正在尋找這樣的事情:

$(...).each(function() { MyFunction takes the value of $(this) as parameter }); 

這樣的話,我可以寫的MyFunction,並通過選項集合迭代。

感謝您的建議。

回答

1

這將選擇所有具有值的選項;

$('select > option[value]').each(function() { 
    // Your magic here 
    // $(this).val() is the value of the option 
}); 

小提琴:http://jsfiddle.net/8PHDp/1/

+0

它應該是$( ​​'#TheTZSelector>選項[值]')每個(函數(){ 警報(。 $(this)); });它顯示[對象] [對象] – frenchie 2011-05-12 19:14:00

+0

當然,對於您的HTML來說,這將是完美的!兩個對象是它應該顯示的,因爲有兩個值,san fransisco和denver。 – 2011-05-12 19:15:33

0
function get_opt_vals($select){ 
    var all_val = []; 
    $('option', $select).each(function(index, item){ 
     all_val.push(item.value); 
    }) 
    return all_val; 
} 

//call like this: 
var opt_array = get_opt_vals($('#TheTZSelector')); 

console.log(opt_array); 

小提琴:http://jsfiddle.net/maniator/yqxX4/