【发布时间】:2014-04-16 06:51:00
【问题描述】:
我有一个表,我在客户端单击按钮时动态地向其追加行。请看一看。。
如您所见,我在每一行都有一个按钮。我想访问已单击其按钮的行的控件。如何在按钮单击时获取相应的行号并使用该行号访问该行中的其他控件?
标记:
<table id="field">
<tbody>
<tr id="row1" class="row">
<td> <span class='num'>1</span></td>
<td><input type="text" /></td>
<td><select class="myDropDownLisTId"> <input type="text" class="datepicker" /></select></td><td>
<input type="submit"></input>
</td>
</tr>
</tbody>
</table>
<button type="button" id="addField">Add Field</button>
<button type="button" id="deleteField">Delete Field</button>
Javascript
$(document).ready(function () {
filldd();
CreateDP();
var rowstring = "<tr class='row'><td class='number'></td><td><input type='text'/></td><td><select class='myDropDownLisTId'/><input type='text' class='datepicker'/></td><td><input type='submit'></input></td></tr>";
$("#addField").click(function (event) {
$("#field tbody").append(rowstring);
filldd();
CreateDP();
if ($("td").hasClass("number")) {
var i = parseInt($(".num:last").text()) + 1;
$('.row').last().attr("id", "row"+i);
$($("<span class='num'> " + i + " </span>")).appendTo($(".number")).closest("td").removeClass('number');
}
event.preventDefault();
});
$("#deleteField").click(function (event) {
var lengthRow = $("#field tbody tr").length;
if (lengthRow > 1)
$("#field tbody tr:last").remove();
event.preventDefault();
});
});
function filldd(){
var data = [
{ id: '0', name: 'test 0' },
{ id: '1', name: 'test 1' },
{ id: '2', name: 'test 2' },
{ id: '3', name: 'test 3' },
{ id: '4', name: 'test 4' },
];
for (i = 0; i < data.length; i++) {
$(".myDropDownLisTId").last().append(
$('<option />', {
'value': data[i].id,
'name': data[i].name,
'text': data[i].name
})
);
}
}
function CreateDP(){
$(".datepicker").last().datepicker();
}
【问题讨论】:
-
在哪种情况下您要访问控件。还要在 SO 上发布您的相关代码。 JSFiddle 不是替代品
-
我想在单击按钮时访问控件。我想访问刚刚单击其按钮的特定行及其行号。
-
@Satpal 每行都有一个提交按钮。
-
可能jsfiddle.net/XD8rG 帮助你,例如我刚刚提醒输入值你可以继续工作
标签: javascript jquery asp.net dom