3

私は既存の関数を持っています、それは入力パラメータとしてcellobjを取ります例えば

MyFunction(cellObj)

これは、誰かがテーブルのセルをクリックしたときに使用され、テーブルのHTMLは次のようになります。

MyFunction(this)   //this is the cellObj

ここで、まったく同じ関数を呼び出す必要がありますが、テーブルに含まれていません。行をループしていて、「this」を渡すことができません。これは、行オブジェクトであり、セルオブジェクトではないためです。したがって、私の質問は、行オブジェクトからセルオブジェクトを取得する方法です。

例えば

 $("#gv tr:has(td)").each(function () {
      var cellObj = $(this)........
      MyFunction(cellObj);
})
4

1 に答える 1

5

つまり、あなたは列に並んでいて、各セルを順番に取得して関数に渡す必要があるので、まったく同じ方法で、列からセルを見つけてループするだけです。テーブルの行を取得してループしました。

これでうまくいくはずです:

$(this).find('td').each(function() {
  // now your cell is in $(this)
  MyFunction($(this));
});

var cellObj = $(this)...などの代わりにそれを使用してください。

編集:

行ごとに1回だけ実行するには、...を試してください。

var cellObj = $(this).find('td:first');
MyFunction(cellObj);

このようにやっていると、コードが効率的に構造化されていないのではないかと思います。cellObjを見つける行を関数に配置し、代わりに関数を各行に渡します。

于 2012-12-19T11:08:12.010 に答える