如何从html选择数组选项中提取信息?

时间:2011-12-28 06:40:03

标签: javascript jquery html

我正在尝试创建一个html select数组选项,如下所示

<select name="tablename">
    <option value="['one','two','three']">Option one</option> 
</select>    

在javascript中

 var myArray = new Array(); 

myArray[0] ="one";
myArray[1] ="two";
myArray[2] = "three";

 option.value=myArray;

但是当我尝试使用

从中获取价值时
var myArray2 = new Array();
myArray2 = $('select[name="tablename"]').val();
val=myArray2[0];

它没有返回任何东西......出了什么问题

3 个答案:

答案 0 :(得分:2)

选项值只能存储字符串。您可以以某种字符串形式存储数组,并在JS中解析它。例如:

<select name="tablename">
    <option value="['one','two','three']">Option one</option> 
</select> 

// JS
var myArray2;
myArray2 = $('select[name="tablename"]').val();
myArray2 = eval(myArray2);
alert(myArray2[0]);

工作演示:http://jsfiddle.net/kZape/

答案 1 :(得分:1)

我不确定你想要做什么,但如果你想将数组["one","two","three"]存储到单个OPTION然后从javascript中读取这个数组,你可以做下一步:

HTML:

<select name="tablename">
    <!-- IMPORTANT COMMENT: use single quotes for value='' and double quoutes for values in array -->
    <option value='["one","two","three"]'>Option one</option>
</select>  

jQuery的:

// reading array from OPTION
var myArray2 = jQuery.parseJSON($('select[name="tablename"]').val());
// myArray2 now is an javascript Array
console.info(myArray2);

<强>更新

您可以使用本机javascript JSON对象方法将Array转换为字符串,然后存储到html OPTION或SELECT值;或者将OPTION或SELECT的值转换为数组(,如果您不需要支持小于8的IE版本):

// store Array into OPTION value
myOption.value = JSON.stringify(["one","two","three"]);

// read Array from SELECT value from your example
var newArray = JSON.parse($('select[name="tablename"]').val());

在MSDN中了解更多信息JSON.parse()JSON.stringifyhttp://msdn.microsoft.com/en-us/library/cc836458%28v=VS.94%29.aspx和MDN:https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/JSON

答案 2 :(得分:0)

首先,编辑你的标记。

<option value="[one,two,three]">Option one</option> 

获取选项标记的值。

v = $('option').val();

'v'在字符串对象中将是“[one,two,three]”。

v = v.slice(1, -1);
那么,它是“一,二,三” 现在分开了,

yourArray = v.split(',');

最后你得到你的阵营[“一个”,“两个”,“三个”]  :)