如何将select
options
推送到array
的{{1}},以便它构成一个objects
。
我试过这个
select box
我的问题:如何推送所有 <select name="fruit">
<option selected="true" value="apple">apple</option>
<option value="banana">banana</option>
<option value="kela">kela</option>
</select>
var fruits = [];
$('#fruits').find('select').each(function(){
fruits.push({
selectName: $(this).attr('name'),
optionValue: $(this).attr('value')
});
});
console.log(fruits);
值,以便我可以获得一个options
?我的意思是select box
必须属于单个array object
框
select
var fruits = [];
$('#fruits').find('select').each(function(){
fruits.push({
selectName: $(this).attr('name'),
optionValue: [] // i want all the options values to be contained either in array or any other way
});
});
console.log(fruits);
答案 0 :(得分:2)
我知道两种方法,如何做到这一点
var fruits = [];
$('#fruits').find('select').children().each(function(){
fruits.push({
selectName: $(this).parent().attr('name'),
optionValue: $(this).attr('value') // all the options value
});
});
console.log(fruits);
或强>
/*var fruits = [];
$('#fruits').find('select').children().each(function(){
fruits.push({
selectName: $(this).parent().attr('name'),
optionValue: $(this).attr('value') // all the options value
});
});
console.log(fruits);*/
var select = {};
$('#fruits').find('select').each(function(){
var propName = $(this).attr('name');
select[propName] = [];
$(this).children().each(function(){
select[propName].push({
selectName: $(this).text(),
optionValue: $(this).attr('value') // all the options value
});
});
});
console.log(select);
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.0.3/jquery.min.js"></script>
<div id="fruits">
<select name="fruit"><option selected="true" value="apple">apple</option><option value="banana">banana</option><option value="kela">kela</option></select>
<select name="vegetable"><option selected="true" value="potato">potato</option><option value="tomato">tomato</option><option value="cabbage">cabbage</option></select>
</div>
答案 1 :(得分:1)
不要忘记<select>
元素也可以包含<optgroup>
个子元素。我为你创造了一个小小提琴:https://jsfiddle.net/8xboz1gn/
我已经创建了一个可以传递jQuery元素的方法。它会查找其中的所有<option>
个项目,并使用键,值对(或id,我的案例中的文本:P)构建一个数组:
function getOptions($elem)
{
var items = [];
var $options = $elem.find('option');
$options.each(function() {
var $option = $(this);
items.push({
'id': $option.val(),
'text': $option.text()
});
});
return items;
}
希望它有所帮助!
答案 2 :(得分:0)
var fruits = [];
$('#fruits').find('select').children().each(function(){
fruits.push({
optionValue: $(this).attr('value')
});
});
console.log(fruits);
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.0.3/jquery.min.js"></script>
<div id="fruits">
<select name="fruit"><option selected="true" value="apple">apple</option><option value="banana">banana</option><option value="kela">kela</option></select>
</div>