我一直试图解决这个问题,而且遇到了很多麻烦,所以我很感激帮助。情况就是这样。我有一个动态生成的表,例如,假设这个动态生成的表中有十行来自从数据库获得的数据。我使用此代码使用JSON从数据库中获取数据。
$(document).ready(function() {
$("#findtrucker-btn").click(function(event){
$.getJSON("/getallLoadsA", function(loads) {
var tr = loads;
for (var i = 0; i < loads.length; i++) {
tr = $('<tr/>');
tr.append("<td>" + i + "</td>");
tr.append("<td>" + loads[i].loadname + "</td>");
tr.append("<td>" + loads[i].category + "</td>");
tr.append("<td>" + loads[i].space + "</td>");
tr.append("<td>" + loads[i].weight + "</td>");
tr.append("<td>" + loads[i].loadprice + "</td>");
tr.append("<td>" + loads[i].street + " " + loads[i].city + ", " + loads[i].state + "</td>");
tr.append("<td>" + loads[i].dstreet + " " + loads[i].dcity + ", " + loads[i].dstate + "</td>");
tr.append("<td>" + loads[i].status + "</td>");
tr.append("<td><button onclick=update()>Update</button></td>");
$('#table').append(tr);
}
});
});
});
所以,我的表中有10行,每行都有一个名为&#34的按钮;更新&#34;单击时,我想转到另一个页面。我发现使用以下内容可以获得所需的输出和页面加载,但仅适用于第1行。
window.location.href = '/updateload?loadname='+(document.getElementById("table").rows[1].cells.item(1).innerHTML);
我希望能够通过点击按钮&#34;更新&#34;在每一行上,访问该特定行的第二个值,以便loadname =&#39;该特定行的加载名称&#39;或者加载[i] .loadname,其中i =当前为该特定按钮开启的行,并且在切换页面时适当地切换页面,我将能够获得该行的数据并且能够随后更新数据。此外,数据将附加到此表:
<table id="table" class="table table-bordered table-striped">
<tr>
<th>#</th>
<th>Loadname</th>
<th>Category</th>
<th>Space</th>
<th>Weight</th>
<th>Load Price</th>
<th>Pickup Location</th>
<th>Deliver Location</th>
<th>Status</th>
<th>Update</th>
</tr>
</table>
答案 0 :(得分:1)
尝试此方法
$(document).ready(function() {
$("#findtrucker-btn").click(function(event){
$.getJSON("/getallLoadsA", function(loads) {
var tr = loads;
for (var i = 0; i < loads.length; i++) {
tr = $('<tr/>');
tr.append("<td>" + i + "</td>");
tr.append("<td id="'loadName' + i">" + loads[i].loadname + "</td>");
tr.append("<td>" + loads[i].category + "</td>");
tr.append("<td>" + loads[i].space + "</td>");
tr.append("<td>" + loads[i].weight + "</td>");
tr.append("<td>" + loads[i].loadprice + "</td>");
tr.append("<td>" + loads[i].street + " " + loads[i].city + ", " + loads[i].state + "</td>");
tr.append("<td>" + loads[i].dstreet + " " + loads[i].dcity + ", " + loads[i].dstate + "</td>");
tr.append("<td>" + loads[i].status + "</td>");
tr.append("<td><button onclick=update('i')>Update</button></td>");
$('#table').append(tr);
}
});
});
});
and Here in Update function
window.location.href = '/updateload?loadname=' + $("#loadname" + i).text());
答案 1 :(得分:0)
当你创建table td的动态html时,试试这个
tr.append("<td id=rowcol_"+ i +">" + i + "</td>");
并将此绑定为您的更新按钮,如
tr.append("<td><button onclick=update("+ i +")>Update</button></td>");
现在更新方法就这样做
function update(i) {
window.location.href = '/updateload?loadname='+(document.getElementById("rowcol_" + i).innerHTML);
}