如何使用javascript访问表中特定行的控件?
我有一个表,在clientside上单击按钮时动态地向其添加行。请看一看 正如你所看到的,我每行都有一个按钮。我想访问已单击其按钮的行的控件。如何在单击按钮时获取相应的行号,并使用该行号访问该行中的其他控件 标记:如何使用javascript访问表中特定行的控件?,javascript,jquery,asp.net,dom,Javascript,Jquery,Asp.net,Dom,我有一个表,在clientside上单击按钮时动态地向其添加行。请看一看 正如你所看到的,我每行都有一个按钮。我想访问已单击其按钮的行的控件。如何在单击按钮时获取相应的行号,并使用该行号访问该行中的其他控件 标记: <table id="field"> <tbody> <tr id="row1" class="row"> <td> <span class='num'>1</span><
<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>
1.
添加字段
删除字段
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();
}
$(文档).ready(函数(){
filldd();
CreateDP();
var rowstring=“”;
$(“#添加字段”)。单击(函数(事件){
$(“#字段tbody”).append(行字符串);
filldd();
CreateDP();
如果($(“td”).hasClass(“编号”)){
var i=parseInt($(“.num:last”).text())+1;
$('.row').last().attr(“id”,“row”+i);
$($(“+i+”).appendTo($(“.number”)).closest(“td”).removeClass(“number”);
}
event.preventDefault();
});
$(“#删除字段”)。单击(函数(事件){
var lengthRow=$(“#字段tbody tr”)。长度;
如果(lengthRow>1)
$(“#字段tbody tr:last”).remove();
event.preventDefault();
});
});
函数filldd(){
风险值数据=[
{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'},
];
对于(i=0;i
我相信您希望在“提交”单击时访问它们。要获取已单击元素的索引(基于第0行索引),请执行以下操作:
$(this).closest('td').parent()[0].sectionRowIndex;
或
要访问同一tr中的元素,您可以使用:
$(this).closest('tr').find('selector here'); //example:$(this).closest('tr').find('.myDropDownLisTId').val()
在这种情况下,您希望访问控件。请将您的相关代码张贴在SO。JSFIDLE不是一个替代品,我想在单击按钮时访问控件。我想访问该特定行及其行号,该行的按钮刚刚被单击。@Satpal每行都有一个提交按钮。这可能会对您有所帮助,在示例中,我刚刚警告了输入值,您可以在3…2…1中向前标记答案!标记谢谢兄弟!:)你是对的。。问题出在别的方面。。请看这里。。
$(this).closest('tr').find('selector here'); //example:$(this).closest('tr').find('.myDropDownLisTId').val()