我有一个动态添加表行的按钮(实际上有几个按钮)。在每个按钮上单击我需要显示/隐藏表格行中的特定元素。
第一次单击其中一个按钮时,第一行将添加到表格中。我正在使用以下内容来确定单击了哪个按钮:
j$('[id$=btnContact]').click(function(){
console.log('contact button was clicked');
var dataRows = j$('tr.dataRow');
console.log(dataRows);
});
问题是第一次单击时dataRows对象为空,因为第一行正在创建。有没有办法在创建行时访问dataRows对象?
是否需要回调功能?
由于dataRows对象为空,我无法显示/隐藏该行中的元素。
感谢您的帮助。
答案 0 :(得分:0)
如果要动态添加行,则需要以不同方式绑定事件。例如,如果您有以下内容:
<强>标记强>:
<table id="tbl">
<tr>
<td>
<input type="button" class="btnAddRow" value="Add Row" />
</td>
</tr>
</table>
<强>的jQuery 强>:
$(".btnAddRow").click(function(){
var row = $(this).parent().parent().clone();
$("#tbl").append(row);
});
jsFiddle :http://jsfiddle.net/hescano/aU4DQ/
它只适用于第一个按钮。虽然以下内容适用于动态添加到DOM的所有按钮:
$(document).on("click", ".btnAddRow", function(){
var row = $(this).parent().parent().clone();
$("#tbl").append(row);
});
jsFiddle :http://jsfiddle.net/hescano/aU4DQ/1/
后者是事件代理,您可以在此处获取更多信息:http://api.jquery.com/on/
答案 1 :(得分:0)
最简单的方法是。
var row = $(this).closest('tr');