2013-04-23 86 views
5

我有一个数组初始化脚本指定选择列表值阵列

var listarray = new Array(); 

而且具有动态创建的选择列表---

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

我的问题是如何分配的选择所有值列表到数组。 在此先感谢。

+0

你想要选择的项目保存在数组中? – 2013-04-23 07:49:21

+0

没有列表的所有项目。 – NewBee 2013-04-23 07:53:37

+0

我可以知道如何动态创建选择列表?我想当生成选项时,你可以使用数组函数'push'来填充你的数组。 http://www.w3schools.com/jsref/jsref_push.asp – 2013-04-23 08:01:02

回答

8

你可以做到这一点像

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

希望它可以帮助你。

4

您可以使用getElementsByTagName来获取所有的selectbox作为对象。

var el = document.getElementsByTagName('select') 

而在jQuery中,您可以按如下所示操作。

var arrayOfValues = $("select").map(function() { return this.value; }); 
+0

看看http:// stackoverflow。com/questions/5866169 /正在获取所有选择的值 - 多选框 - 单击按钮-u以获取更多信息 – 2013-04-23 07:55:24

2

使用普通的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> 

这些值将存储在您的数组中。我希望我能正确理解你。