1

次の例があります: http://jsfiddle.net/Jm7Kp/

ここでのアイデアは、テーブルを動的に作成することであり、テーブル内のボタンはそのテーブルにのみ行を作成します。

<div id="divPrincipal">
</div>
<button id="btnAdd">Add</button>

<script>
    var objDivPrincipal = $("#divPrincipal");
    var tbl;
    $("#btnAdd").click(function () {
        createTable();
    });

    function createTable() {
        tbl = $("<table border=1><thead><tr><td>FName</td><td>LName</td></tr></thead><tbody></tbody><tfoot><tr><td><button class='btnAddRow'>AddRow</button></td><td></td></tr></tfoot></table></br>");
        objDivPrincipal.append(tbl);
        tbl.find(".btnAddRow").click(function () {
            $(this).parent().parent().parent().after("<tr><td>John</td><td>Snow</td></tr>");
        });
    }
</script>

私はparent().parent().parent()を使いたくない...私はparent('tbody')とcloserest('tbody')を使おうとしましたが、うまくいきませんでした。parent('table').find('tbody') でも機能しません。

わかりました。

4

2 に答える 2

2

使用する:

$(this).closest('table').append("<tr><td>John</td><td>Snow</td></tr>");

jsFiddle の例

于 2013-11-08T17:11:56.427 に答える
1

これは、同じ祖先にないためです。追加ボタンは にあるtfootため、次を試してください。

$(this).closest("tfoot").prev("tbody").append("<tr><td>John</td><td>Snow</td></tr>");

あなたも望んappendでいませんafter-したがって、上記は最も近いものを見つけtfoot、次に前のものを見つけtbody、新しいものを追加しますtr

デモ: http://jsfiddle.net/Jm7Kp/7/

于 2013-11-08T17:13:05.920 に答える