2011-05-12 59 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/