单击按钮时获取表格行

时间:2013-09-09 21:19:09

标签: jquery

我有一个动态添加表行的按钮(实际上有几个按钮)。在每个按钮上单击我需要显示/隐藏表格行中的特定元素。

第一次单击其中一个按钮时,第一行将添加到表格中。我正在使用以下内容来确定单击了哪个按钮:

        j$('[id$=btnContact]').click(function(){
            console.log('contact button was clicked');
            var dataRows = j$('tr.dataRow');
            console.log(dataRows);
        });

问题是第一次单击时dataRows对象为空,因为第一行正在创建。有没有办法在创建行时访问dataRows对象?

是否需要回调功能?

由于dataRows对象为空,我无法显示/隐藏该行中的元素。

感谢您的帮助。

2 个答案:

答案 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');