0

これは私のhtmlテーブルです

<table>
    <thead>
        <tr>
            <td class="td20"><h3>Patient Name</h3></td>
            <td class="td20"><h3>Summary</h3></td>
            <td class="td20"> <h3>Created</h3></td>
            <td class="td20"><h3>Last visit</h3></td>
            <td class="td20"> <h3>Refer to a Doctor</h3></td>
        </tr>
    </thead>
    <tbody id="patient_table">
        <tr id="1">
            <td class="td20">Patient Name</td>
            <td class="td20">Summary</td>
            <td class="td20">Created</td>
            <td class="td20">Last visit</td>
            <td class="td20">Refer to a Doctor</td>
        </tr>
        <tr id="2">
            <td class="td20">Patient Name</td>
            <td class="td20">Summary</td>
            <td class="td20">Created</td>
            <td class="td20">Last visit</td>
            <td class="td20">Refer to a Doctor</td>
        </tr>
    </tbody>
</table>

これは私のスクリプトです:

$("#patient_table").click(function(e) {
    var id = $(this).children('tr').attr('id');
    alert(id);
});

<tr>内で動的に生成されます<tbody>。クリックしてそれ自体idを見つける必要があります。スクリプトを使用すると、2回目のクリックに関係なく、常に最初のクリックのみが取得されます。<tr><tr><tr> id<tr>

4

1 に答える 1

4

代わりにこれを使用してください:

$("#patient_table").on('click','td',function (e) {
    var id = $(this).closest('tr').attr('id');
    alert(id);
});

jsFiddle の例

.on()動的に生成される行について言及したので、イベント処理をテーブル セルに委任するために使用したいと考えています。

于 2013-06-17T15:05:50.317 に答える