![](/img/trans.png)
[英]jquery select change get data attribute value for each tr td in The table contains dynamically generated rows
[英]How to get data of all rows from a dynamically generated table by jQuery
我正在使用jQuery
和django
我有一个由jQuery
生成的动态表,其中包含email
字段和password
字段以及可以删除该行的删除按钮:
$("button#genBtn").click(function() {
var t = $("input#inputEmail").val();
var p = $("input#inputPassword").val();
var delBtn = $('<button class=\"btn btn-danger\">delete</button>');
var row = $("<tr><td>" + t + "</td><td>" + p + "</td><td></td></tr>");
$('td:last', $(row)).append(delBtn);
$(delBtn).bind("click", deleteNode);
$("table tbody").append(row);
});
这是表:
<table class="table table-striped">
<thead>
<tr>
<th>email</th>
<th>password</th>
<th>action</th>
</tr>
</thead>
<tbody>
</tbody>
</table>
假设我想从该表中获取所有行的数据,并将其发布到服务器端。 我该怎么办?
如果没有任何其他库,则如下所示:
(1)从表中获取数据
function getTableData()
{
// Array of data we'll return
var data = [];
// Counter
var i = 0;
// Cycle through each of the table body's rows
$('tbody tr').each(function(index, tr) {
var tds = $(tr).find('td');
// Check we've got two <td>s
if (tds.length > 1) {
// If we do, get their text content and add it to the data array
data[i++] = {
email: tds[0].textContent,
password: tds[1].textContent
}
}
});
return data;
}
(2)将其发布到服务器
$.ajax({
method: 'post',
url: '', // Set the URL of whatever in Django will handle your post
data: getTableData()
});
但是 ,如果我尝试执行此任务,则可以通过使用Knockout来实现(1),这将使view和viewmodel之间(或模板和视图之间,您可能认为它们是Django用户)之间有更好的分离。 很好,因为您使用的是不错的服务器端框架,所以很遗憾在客户端上添加意大利面条代码!
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.