2

(一般的な質問は実際にすでに行われていますが、ここで与えられた答えは、他の質問の「舞台裏」の説明の代わりに、ここで提起された問題を解決する良い方法を提供します...)

入力フィールドを含むテーブル (テーブルが埋め込まれている) 内のすべてのセルを強調表示しようとしています。

サンプルコード: jsFiddle

私はそれを行うことができますが、 :has() セレクターのドキュメントがパフォーマンスの問題について言及しているため、 .has() メソッド$('#rec td:has(>input)')を使用することを好みます - 私のテーブルはいくつかの埋め込みテーブルで非常に大きくなる可能性があり、それでも - IE6 をサポートする必要があります...

ただし、$('#rec td').has('>input')動作しません (実際には直接の子としてを持たないセルが含まれます)、子セレクター<input>を無視しているように見えます...>

:has() セレクターと同じように .has() メソッドで同じ結果を得る方法はありますか?

4

3 に答える 3

2

input最初にすべてを見つけてから、その親を見つける方が効率的だと思いますtd

$('#rec input').closest('td').css('background-color', 'blue');

この方法では、すべてのテーブル セルとその子を検査する必要はありません。

フィドル

于 2013-07-06T15:35:59.097 に答える
0

.has() から > を削除してみてください

于 2013-07-06T15:31:40.643 に答える
0
$('#rec td').has('input').addClass('highlight')

また

$.each($('#rec td').has('input'), function(){
    $(this).addClass('highlight');
});
于 2013-07-06T15:34:30.457 に答える