如何在JSON对象或数组中存储选择选项值和文本?

时间:2011-11-01 22:08:23

标签: jquery arrays json select hash

我有一个选择列表(下面的示例)。我想将此选择列表(文本和值)存储在JSON对象或Array对象中。这样我以后就可以使用.each函数了。我想根据用户输入显示/隐藏选择选项列表中的记录。所有代码都已准备就绪并且正在工作,除了我无法确定如何将包含其所有文本和值对的选择选项列表存储到Array或JSON对象中,然后能够根据文本遍历它。

谢谢。

 <select id="mySelect" multiple="multiple">
    <option value="1">First</option>
    <option value="2">Second</option>
    <option value="3">Third</option>
    <option value="4">Fourth</option>
 </select>

2 个答案:

答案 0 :(得分:6)

您可以试试这个fiddle

<强> HTML

<select id="mySelect" multiple="multiple"> 
    <option value="1">First</option>
    <option value="2">Second</option>
    <option value="3">Third</option> 
    <option value="4">Fourth</option>
</select>

<强> JAVASCRIPT

var options = {};

$('#mySelect option').each(function(){
    options[$(this).text()] = $(this).val();
});

console.log(options);

//or the other way round

var options2 = {};

$('#mySelect option').each(function(){
    options2[$(this).val()] = $(this).text();
});

console.log(options2);

控制台日志输出:

Object
First: "1"
Fourth: "4"
Second: "2"
Third: "3"
__proto__: Object
fiddle.jshell.net:36

Object
1: "First"
2: "Second"
3: "Third"
4: "Fourth"
__proto__: Object

答案 1 :(得分:2)

我的回答与@ topek非常相似,但我使用对象来存储数组元素,因此它可能很有用。您可以检查工作示例here

<强> HTML:

<select id="mySelect" multiple="multiple">
  <option value="1">First</option>
  <option value="2">Second</option>
  <option value="3">Third</option>
  <option value="4">Fourth</option>
</select>

<强>使用Javascript:

var options = [];
$('#mySelect option').each(function() {
    options.push({ "id" : this.value, "text" : this.textContent });
});