Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/79.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何从HTML选择框返回数组?_Javascript_Jquery - Fatal编程技术网

Javascript 如何从HTML选择框返回数组?

Javascript 如何从HTML选择框返回数组?,javascript,jquery,Javascript,Jquery,可能重复: 这是我的HTML: <select name="select"> <option value='xxx'> xXx </option> <optgroup label="Letters"> <option value='a'> A </option> <option value='b'> B </option> <opt

可能重复:

这是我的HTML:

<select name="select">
   <option value='xxx'> xXx </option>    
   <optgroup label="Letters">
       <option value='a'> A </option>
       <option value='b'> B </option>
       <option value='c'> C </option>
       <option value='d'> D </option>
   </optgroup>
   <option value='zzz'> zZz </option>
</select>

取决于选择框选项和选项组。

下面是您要求的代码

$(document).ready(function () {
var mtest = "[";
var i = 0;
var j = 0;

$("select").children().each(function() { 
 if (i==0) i+=1; else  mtest += ','; 
 j = 0;
if ($(this).children().length ==0) { 
     mtest += '{"' + $(this).attr('value') + '":"' +  $.trim($(this).html()) + '"}';
} else {
    mtest += '{"' + $(this).attr('label') + '":{';
    $(this).children().each(function() { 
        if (j==0) j+=1; else  mtest += ','; 
        mtest += '"' + $(this).attr('value') + '":"' + $.trim($(this).html()) + '"';

    });
  mtest += '}';
}

;})
mtest += ']';
document.write(mtest);

});​
在这里你可以测试它;我添加了一些额外的HTML用于测试目的


如果您有任何问题或担忧,请告诉我。

与我昨天回答的问题几乎完全相同。。。谢谢你@Michael Berkowski,我想我会用你的问题的答案谢谢你@salih0vicX,这对我来说很好,还有一个问题与我的“重复”感谢相同
$(document).ready(function () {
var mtest = "[";
var i = 0;
var j = 0;

$("select").children().each(function() { 
 if (i==0) i+=1; else  mtest += ','; 
 j = 0;
if ($(this).children().length ==0) { 
     mtest += '{"' + $(this).attr('value') + '":"' +  $.trim($(this).html()) + '"}';
} else {
    mtest += '{"' + $(this).attr('label') + '":{';
    $(this).children().each(function() { 
        if (j==0) j+=1; else  mtest += ','; 
        mtest += '"' + $(this).attr('value') + '":"' + $.trim($(this).html()) + '"';

    });
  mtest += '}';
}

;})
mtest += ']';
document.write(mtest);

});​