如何从多选列表中将所有选项的.val()和.html()都放到json对象中?最好使用jQuery。
提前致谢!
更多信息:
我正在使用两个多选框。选择左侧框中的项目并将其移动到右侧。一旦他们拥有了他们想要选择的所有项目,他们将推送提交,它将采取右侧选择框中的所有项目并将其移动到主列表。
以下是我获取JSON对象后使用的代码:
datalistObject = JSON.parse(response);
if (datalistObject.length){
$(".data-list tbody").empty();
for (var i=0; i < datalistObject.length; i++) {
var newrow = "<tr><td><input type='checkbox' name='user_id' value='" + datalistObject[i][0] + "' class='data-list-check'></td><td>" + datalistObject[i][1] + "</td></tr>";
$(newrow).appendTo($(".data-list tbody"));
}
}
示例html和输出将是:
<select name="selecteditems">
<option value="op1">Option 1</option>
<option value="op2">Option 2</option>
<option value="op3">Option 3</option>
</select>
[
["op1","Option 1"],
["op2","Option 2"],
["op3","Option 3"]
]
答案 0 :(得分:14)
这样的东西?
var items = $("#select > option").map(function() {
var opt = {};
opt[$(this).val()] = $(this).text();
return opt;
}).get();
for(var i = 0; i < items.length; i++) {
for(key in items[i]) {
alert(key + ': ' + items[i][key]);
}
}
编辑:获取类似示例数据的结构:
var items = $("#select > option").map(function() {
var arr = [];
arr.push([$(this).val(), $(this).text()]);
return arr;
}).get();
for(var i = 0; i < items.length; i++) {
alert(items[i]);
}
演示:http://jsfiddle.net/karim79/eNGUL/2/
请参阅.map
。
答案 1 :(得分:0)
请看这篇文章: Serializing to JSON in jQuery