从复选框创建具有复杂变量的对象
Creating objects with complex variables from checkbox
我有一个复选框,每个复选框都有一个类似的值:"case color id"
例如
- 案例1-红色-1
- 案例2-蓝色-2
- 案例1-蓝色-4
- 案例3-绿色-3
我想做的是用这些值创建一个json。最终结果是:
cases:[
{
case1:[
{
id : '1'
color: 'red'
},
{
id: '4'
color: 'blue'
}
],
case2:[
{
id : '2'
color: 'blue'
}
],
case3:[
{
id : '3'
color: 'green'
}
]
}
]
我需要关于使用jquery/javascript 插入对象的逻辑的帮助
$('#checkbox :checkbox:checked').each(function (index, element) {
var case = $('this').val().split('-')[0];
var color = $('this').val().split('-')[1];
var id = $('this').val().split('-')[2];
var caseHolderObject = new Object();
// create objects here and insert the values depending which case it belongs to
// Then get the jsonString
var jsonString = JSON.stringify(caseHolderObject));
}
var cases = [{}];
$('#checkbox :checkbox:checked').each(function (index, element) {
var cas = $(this).val().split('-')[0];
var color = $(this).val().split('-')[1];
var id = $(this).val().split('-')[2];
var obj = {
id: id,
color: color
};
var ary = [obj];
if (cases[0][cas]) {
cases[0][cas].push(obj);
} else {
cases[0][cas] = ary;
}
});
var jsonString = JSON.stringify(cases);
请参阅正在运行的演示
检查这个脚本,我在其中尝试了您的大部分需求,如果您需要更新,请告诉我:
function retriever(){
var caseObject = new Object();
$(':checkbox:checked').each(function () {
var caseHolderObject = new Object();
var caseVal = $(this).val().split('-')[0];
var color = $(this).val().split('-')[1];
var id = $(this).val().split('-')[2];
caseHolderObject['color']=color;
caseHolderObject['id']=id;
caseObject[caseVal]=caseHolderObject;
});
var jsonString = JSON.stringify(caseObject);
alert(jsonString);
}
HTML :
<input type="checkbox" value="case1-red-1">
<input type="checkbox" name="case1" value="case2-red-2">
<input type="checkbox" name="case2" value="case4-red-4">
<input type="checkbox" name="case3" value="case3-red-3">
<button onclick="retriever()">here</button>
相关文章:
- 替换另一个变量对象中的变量值
- 如何从表单变量对象中获取特定的from属性
- 变量/对象是否按值传递,为什么我不能在 javascript 中使用变量更改对象的属性
- 执行上下文和变量对象在 JavaScript 中实际上是一回事吗?
- 如何将变量对象传递到多个javascript弹出窗体
- 如何将javascript变量/对象从一个页面传递到另一个页面
- 在具有递增的变量/对象中存储和控制传单 GeoJSON 图层
- 在回调中重用变量/对象
- 给一个有1个变量/对象的函数给定几个参数
- 使用单词'英语'因为变量/对象名称在javascript中不起作用
- 如何访问变量对象中的数据
- 使用onclick调用变量对象中的函数
- 使用Underscore JS部分和for循环的未定义变量对象
- 如何查看我的变量对象
- 变量对象属性名称作为javascript中的参数
- 从变量对象中移除DOM元素,以便将其发布到服务器
- 根据变量对象是否等于“true”输出内容
- 如何连接(变量+对象键名)以获得点表示法的对象值
- 为什么在ES5中将变量对象改为词法环境
- 动态引用变量(对象)