如何从多选列表中将所有选项的.val()和.html()都放到json对象中?最好使用jQuery.
提前致谢!
更多信息:
我正在使用两个多选框.选择左侧框中的项目并将其移动到右侧.一旦他们拥有他们想要的所有项目,他们将推送提交,它将采取右侧选择框中的所有项目并将其移动到主列表.
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]); } }
编辑:要获得类似于示例数据的结构:
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
.