-1

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

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

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

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

需要回调函数吗?

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

谢谢你的帮助。

4

2 回答 2

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/

于 2013-09-09T21:33:05.357 回答
0

那么最简单的方法就是。

 var row = $(this).closest('tr');
于 2013-09-09T21:38:48.323 回答