序列化表tr数据?

时间:2016-11-01 10:54:53

标签: jquery serialization html-table

我正在使用以下序列化我的表单:

formVals = $('#formID').serialize();

但是我还有一个表格,我想序列化并将其添加到formVals可以这样做吗?我试过了:

$('#tableName').find('tr').each(function(){
    formVals = $(this).text().serialize();
})

但结果是

  

未捕获的TypeError:$(...)。text(...)。serialize不是函数

我想要做的是从每个tr获取文本,并将其作为新条目添加到formVals以及退出日期。有没有办法做到这一点?

更新

一行如下:

<tr id="12354-515-asd">
<td>Today</td>
<td>0000</td>
<td>Monday</td>
<td>2345</td>
</tr>

要添加到formVals的预期值是: 12354-515-asd=Today0000Monday2345

2 个答案:

答案 0 :(得分:3)

您需要将每个参数连接到formVals

formVals = $("#formID").serialize();
$('#tableName').find('tr').each(function(){
    formVals += '&' + this.id + '=' + encodeURIComponent($(this).text());
});

答案 1 :(得分:2)

您收到错误的原因&#34;未捕获的TypeError:$(...)。text(...)。serialize不是函数&#34;是因为serialize()不是适用于&#34; tr&#34;或&#34; td&#34;元素(你不能这样做):

http://api.jquery.com/serialize/

  

.serialize()方法以标准URL编码方式创建文本字符串   符号。它可以作用于已选择个体的jQuery对象   表单控件,例如,,和:$(&#34;输入,   textarea,选择&#34; ).serialize();

如果您希望附加此数据,则需要通过获取表行的ID来构建字符串,然后遍历每个<td>元素(在其中附加数据) - 请参阅Barmar&#39; s回答一个坚实的例子。