jquery - 使用 jQuery 将选择列表转换为 JSON

标签 jquery json

如何将多选列表中所有选项的 .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"]
]

最佳答案

类似这样的吗?

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]);   
    }
}

演示:http://jsfiddle.net/eNGUL/

编辑:要获取像示例数据这样的结构:

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 .

关于jquery - 使用 jQuery 将选择列表转换为 JSON,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4327042/

相关文章:

javascript - 绕过 stopPropagation()

java - ESQL 中的动态 JSON 键/值对生成

php - 如何使用 PHP 从数组中删除 JSON 键?

javascript - Highcharts 设置系列文本颜色

javascript - 添加使用 jquery 使用鼠标和浏览器进行滚动的类

javascript - 使用 jQuery 检查 html 选择的值

javascript - 无法从 JQUERY 将 JSON 数据发送到 python

python - 使用 kivy 将加速度计数据存储在 json 文件中时出错。

javascript - 如何在 ASP.NET 上实现 Google Places 文本框预测?

jquery - jqgrid 中带有 JSON 数据的树形网格