0

私はこのコードを持っています:

$item = $row.find('td[data-id="' + id + '"]');

$row は、テーブル行への jquery 参照です。このコードを最適化する方法はありますか? 必要がない限り、検索機能を使用する必要はありません。私は次のようなことができるかどうか疑問に思っていました:

$item = $($row + 'td[data-id="' + id + '"]');

しかし、それはうまくいかないようです。このコードを改善する方法はありますか? 私のコードでは、これは何度も呼び出され、IE で問題を引き起こしているようです。

4

3 に答える 3

4

find を明示的に使用せずに

$item = $('td[data-id="' + id + '"]',$row);

しかし、.find()私が提案したものよりも速いです

ここに画像の説明を入力

于 2013-06-13T10:58:34.660 に答える
1

これは、試して最適化するための非常に小さなコードです。何度も呼ばれたと言います。必要なすべてのセルを抽出するために 1 回の呼び出しを行い、結果のコレクションを操作することを検討する必要があります。いくつかの HTML は、それが本当に実現可能かどうかを確認するのに役立ちます。

于 2013-06-13T11:04:42.353 に答える
0

あなたの特定のケースでは、すでに最初の選択があり、その結果内で検索したい

あなたはどちらかを行うことができます

//passing the $row as the context for the selection
$("'td[data-id="' + id + '"]'",row); 

また

$row.find('td[data-id="' + id + '"]')

ただし、前者は実際には数秒間経過した後に後者を呼び出すifため、後者は常に前者よりも優れています

を使用.find()することは、パフォーマンスに関しては一般的に良いことです。のような複合セレクターで

$("table td div")

divが検出され、その親とその後の親の親に基づいてフィルタリングされます。find を使用すると、selection を強制的に左から右に評価することができます。

$("table").find("td").find("div")

後者は、より多くのテーブルがあると仮定すると、より速く実行されますdiv´'s than`

于 2013-06-13T11:32:58.147 に答える