Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/403.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/79.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何将表行序列化为json对象_Javascript_Jquery_Json_Forms_Serialization - Fatal编程技术网

Javascript 如何将表行序列化为json对象

Javascript 如何将表行序列化为json对象,javascript,jquery,json,forms,serialization,Javascript,Jquery,Json,Forms,Serialization,如何将表序列化为json数组,以便每个数组元素都包含表示一个表行的json对象: [ { name: "variable1", valuetostore: "a-b", totaltype: "Lowest" }, { name: "variable2", valuetostore: "c-d", totaltype: "Highest" } ] 我尝试了下面的代码,但这会生成具有名称和值属性的对象,并且数组中的成员比表行中的成员多 它还序列化隐藏的第一行。它是用于行添加的模板行,不应出现在结

如何将表序列化为json数组,以便每个数组元素都包含表示一个表行的json对象:

[
{ name: "variable1", valuetostore: "a-b", totaltype: "Lowest" },
{ name: "variable2", valuetostore: "c-d", totaltype: "Highest" }
]
我尝试了下面的代码,但这会生成具有名称和值属性的对象,并且数组中的成员比表行中的成员多

它还序列化隐藏的第一行。它是用于行添加的模板行,不应出现在结果中

$(函数(){
$(“#btnShow”)。在(“单击”,函数(){
log($(“#myForm”).serializeArray();
});
});

名称
价值
算计
总结
最小的
比格斯
a-b
总结
最小的
比格斯
c-d
总结
最小的
比格斯
显示

您可以使用带有
n+2
n子项
选择器仅选择tr>=2:

#myForm tbody tr:nth-child(n+2)
但是,结果不会是一个对象数组,其中每个对象都是一行的对象。结果将是一个对象数组,其中每个select/input/textarea本身就是一个对象

您可以使用
trs
上的
each()
函数来检查所有这些函数,以获得预期的结果

以下是两个选项的示例:

$(函数(){
$(“#btnShow1”)。在(“单击”,函数(){
log($(“#myForm tbody tr:n个孩子(n+2)文本区域,#myForm tbody tr:n个孩子(n+2)输入,#myForm tbody tr:n个孩子(n+2)选择”).serializeArray();
});
$(“#btnShow2”)。在(“单击”,函数(){
var-ar=[];
$(“#myForm tbody tr:n个子项(n+2)”)。每个(函数(){
rowData=$(this).find('input,select,textarea').serializeArray();
var rowAr={};
$。每个(行数据、函数(e、v){
rowAr[v['name']=v['value'];
});
ar.push(rowAr);
});
控制台日志(ar)
});
});

名称
价值
算计
总结
最小的
比格斯
a-b
总结
最小的
比格斯
c-d
总结
最小的
比格斯
选项#1

选项2
您可以使用SerializeFromTable jQuery插件序列化任何包含或不包含表单元素的表。无需通过
标记包装表格。它非常简单(其中data columnTitle是json/json数组对象中所需的关键字段):


有关更多选项,请查看以下链接:。

我认为这将解决您的问题。此问题的答案不显示从tr中的input、textarea和select元素获取valeus。我询问了如何在result json objects properties中返回其值这两个选项都返回具有name和value属性的对象。如何获取具有名称、valuetostore和totaltype属性的对象?
let tabledata = $("#example1").serializeFromTable({
                  columnNameBy:"data-columnTitle"
                });