我试图用jQuery提交一个复杂的表单。我想在AJAX请求中将值提交给服务器。
鉴于我从jQuery Datatable插件获得的<tr>
值数组,如何轻松地将data-id
值提取为适合提交到表单的格式,例如类似的东西:
{
id: 65537, id: 32768, id: 65539
}
我试过了:
> $(table.rows().nodes())
> [<tr role="row" class="odd" data-id="65537">…</tr>, <tr role="row" class="even" data-id="32768">…</tr>, <tr role="row" class="odd" data-id="65539">…</tr>]
> $(table.rows().nodes()).length
3
获取data-id
值需要什么代码?
更新了修改
实际上,我刚刚通过对代码进行硬编码来测试表单,我需要将其转换为这个0索引数组,显然是来自id字段的数字:
var formData = {"products[0]": 65537,
"products[1]": 65540};
谢谢。
答案 0 :(得分:0)
好好循环浏览每个tr
并将其data-id
推送到key-value
的唯一array
。
<强> DEMO 强>
var rows=$(table.rows().nodes())
var values=[];
$.each($(rows),function(key,value){
var vals ={}
vals[key]=$(this).attr('data-id')//or values.push($(this).attr('data-id');
values.push(vals);
});
console.log(values);
注意:您在问题中提到的
id
对象中不能包含重复键,因此最好使用一些唯一索引,您可以从key
<{1}}$.each
参数中获取该索引>
答案 1 :(得分:0)
使用此选项,数据变量将包含您想要的所有内容
$(function(){
var data = [];
$.each($('table.rows().nodes()'),function(k,v){
data.push($(this).data('id'));
});
console.log(data);
})