0

2 つの状況のいずれかで、datatables.js 行のチェックボックスを取得しようとして問題が発生しています。

以下のコードでは、ハンドラ関数で chkCtrl.name が定義されていません。

$("table#tblAssays tbody tr").each(function (index) {
        if ($.trim($(this).find('td:eq(9)').text()) == todayDOW) 
        {
            var chkCtrl = $(this).find("td input:checkbox");
            HandleCheckedChanged(chkCtrl);
        }

しかし、クリックイベントを以下のように処理すると、 this.name は値を返します

 $("#tblAssays").on("click", "tbody td input:checkbox", function () {
    HandleCheckedChanged(this);

誰かが私が間違っていることを指摘できますか?

ありがとう。

4

2 に答える 2

0

最初の例では、関数へのjQueryオブジェクト参照を渡しHandleCheckedChangedます。後者では、実際にDOM要素を渡します。

最初のものを次のように変更する必要があります。

var chkCtrl = $(this).find("td input:checkbox").get(0);
于 2012-11-20T21:53:02.377 に答える
0

$(this).find("td input:checkbox")name プロパティを持たない jQuery オブジェクトを返しますがthis、クリック ハンドラ関数内では name プロパティを持つ DOM オブジェクトを参照します。

HandleCheckedChanged(chkCtrl[0]);代わりに試してください。

于 2012-11-20T21:51:21.980 に答える