javascript - 你如何JSON序列化一组隐藏的输入值(可以使用jQuery)?

标签 javascript jquery json

我有以下 DOM 结构..

<input id="WorkAssignmentID_3462" type="hidden" value="3462" name="WorkAssignmentID"/>
<input id="WorkItemID_3462" type="hidden" value="3633" name="WorkItemID"/>
<input id="EmployeeID_3462" type="hidden" value="15" name="EmployeeID"/>
<input id="AssignedBy_3462" type="hidden" value="Jonathan Erickson" name="AssignedBy"/>
<input id="AssignedDate_3462" type="hidden" value="8/1/2009 12:00:00 AM" name="AssignedDate"/>
<input id="ExpirationDate_3462" type="hidden" value="" name="ExpirationDate"/>
<input id="RegisteredDate_3462" type="hidden" value="8/1/2009 12:00:00 AM" name="RegisteredDate"/>

假设获取所有这些 DOM 元素的 jQuery 选择器如下:

$('#assignment');

我想做的是从该集合创建一个 JSON 对象:

var WA = {
    WorkAssignmentID: '3462',
    WorkItemID: '3633',
    EmployeeID: '15',
    AssignedBy: 'Jonathan Erickson',
    AssignedDate: '8/1/2009 12:00:00 AM',
    ExpirationDate: '',
    RegisteredDate: '8/1/2009 12:00:00 AM',
};

最简单的方法是什么?

我想做这样的事情,但它行不通,因为我不认为你可以动态创建 JSON 对象的属性...是否可以动态创建属性名称?

var WA = {};

$('#assignment').each(function(idx, elem) {
    $.extend(WA, {
                     $(elem).attr('name'): $(elem).val()
                 });
});

最佳答案

这个怎么样,使用bracket notation :

var result = {};

$('input[type=hidden]').each(function() {
    result[this.name] = this.value;
});

关于javascript - 你如何JSON序列化一组隐藏的输入值(可以使用jQuery)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1223691/

相关文章:

javascript - 如何升级google+按钮?

javascript - 将两个动态宽度的 div 在同一行上居中并

javascript - 如何在javascript中将字符串转换为符号

C++,JSON,获取数组中的对象成员

javascript - 基本 "Raw"Ajax 调用

javascript - Vue.js 加载和渲染时对象值未定义错误

javascript - 使用用户 ID 将数据添加到 Firestore

jquery - 为什么position().top在没有任何边距或填充的元素上显示8?

jquery - 无法使用 Jquery 设置 TextArea 值

json - MongoDB 使用 bson.Raw 从查询中返回整个 JSON