3

次のコードがあります。

<table id="my_table">
<tr>
    <td>
        <button class="btn_save" value="1">Save</button>
    </td>
</tr>
</table>

そのボタンを選択したい

私が試してみました:

$('#my_table .btn_save').click......
$('table#my_table .btn_save').click......
$('table td .btn_save').click......
$('table td :button.btn_save').click......

何も機能していないようです。何が欠けていますか?

ところで、これは多くのボタンを備えた動的に生成されたテーブルになるため、ボタンにIDを付けることはできません。そのため、クラスの方法を選択しました。

4

4 に答える 4

4

すべてのセレクターは問題ないようです。(これは動作中の jsFiddle です)

次の 2 つの問題が考えられます。

データが動的に追加されるかのどちらかです。その場合、以下を使用してイベント委任を使用する必要があります.on()

$(document).on("click",'#my_table .btn_save',function(){
   //what you're doing
});

$(document).readyもう1つの可能性は、セレクターがデータの前に追加されることです。その場合、文を句に入れる必要があります

$(function(){
    $('#my_table .btn_save').click......
});
于 2013-03-21T20:47:02.327 に答える
3

テーブルとコンテンツを動的に生成しているため、 を使用してクリック イベントをデリゲートします.on()。試す

$(document).on('click', '#my_table .btn_save', function(){......
于 2013-03-21T20:46:56.637 に答える
0

コードを実行している間、テーブルとボタンが dom に存在することを確認してください。

$(function(){
      var button = jQuery("#my_table button.btn_save")
});
于 2013-03-21T20:46:15.070 に答える
0

これらのボタンをクリックする頻度は関係ありません。彼らがあなたのフォームを提出することは保証されていません! type="submit"代わりにそれらをに変更する必要がありますtype="button"

于 2013-03-21T20:46:37.397 に答える