将选择列表的值分配给数组

6
我有一个在脚本中初始化的数组。
var listarray = new Array(); 

并且有一个动态创建的选择列表 ---

<select multiple size=6 width=150 style="width:150px" name="ToLB" >
</select>

我的问题是如何将选择列表的所有值分配给数组。 提前致谢。

您希望将所选项目保存在数组中吗? - MarGa
不返回列表的所有项。 - NewBee
@MarouaGasmi请不要参考W3Schools - 在这里阅读为什么:http://www.w3fools.com/ - Henrik Andersson
@limelights 好的,我不知道那个。无论如何,我只是想向他展示如何使用对我有效的push方法。还是谢谢。 - MarGa
@NewBee 你能贴一些代码吗? - MarGa
显示剩余3条评论
4个回答

7
你可以这样做:JQuery-
var optionVal = new Array();
    $('select option').each(function() {
            optionVal.push($(this).val());
        });

Javascript-

var x = document.getElementById("mySelect"); 
var optionVal = new Array();
for (i = 0; i < x.length; i++) { 
    optionVal.push(x.options[i].text);
}

这将您选择框中的所有选项存储在数组optionVal中。
希望这能对您有所帮助。

6
你可以使用getElementsByTagName方法来获取所有的selectbox对象。
var el = document.getElementsByTagName('select')

在jQuery中,您可以按如下方式执行此操作。
var arrayOfValues = $("select").map(function() { return this.value; });

请查看以下链接以获取更多信息:https://dev59.com/ZW025IYBdhLWcg3wqn8N - Dipesh Parmar

3

如果您使用纯JavaScript,以下代码可以帮助您完成操作。但是,请先确保您的选择框中至少有一些选项。

HTML

<select id="selecty" multiple size=6 width=150 style="width:150px" name="ToLB" >
    <option value="monkey">Monkey</option>
</select>

javascript

var listarray = new Array();
//NOTE: Here you used new as a variable name. New is a reserved keyword so you cant use that as a variable name.

var select = document.getElementById('selecty'); // get the select list

for(var i = 0; i < select.options.length; i++){
   listarray.push(select.options[i].value);
}
console.log(listarray);
>> ["monkey"]

点击这里进行示例测试:

http://jsfiddle.net/mQH7P/


2
<html>
<body>
<!--  Any list (The main thing that it was built before the launch of the functions of the script) -->
<select id = "mySelect" multiple size=6 width=150 style="width:150px" name="ToLB" >
    <option value="1111"></option>
    <option value="12"> </option>
    <option value="123"></option>
</select>
<script>
        var valuesList = new Array(); 
        var mySelect = document.getElementById("mySelect"); 
        var currentOption = mySelect.childNodes; 
        for (var i=1; i<currentOption.length; i = i+2) { // i+2 needed in order to pass text nodes
            valuesList[i-1]=currentOption[i].value;
        }
</script>
</body>
</html>

您的值将存储在数组中。希望我理解你的意思正确。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接