2

(确实已经提出了一般性问题,但这里给出的答案提供了解决这里提出的问题的好方法,而不是其他问题的“幕后”解释......)

我正在尝试突出显示包含输入字段的表格(带有嵌入式表格)中的所有单元格。

示例代码:jsFiddle

我可以这样做,$('#rec td:has(>input)')但我更喜欢使用.has() 方法,因为:has() 选择器的文档提到了性能问题 - 我的表格可能会变得非常大,有几个嵌入式表格,我 - 仍然 - 必须支持 IE6 ...

但是,$('#rec td').has('>input')不起作用(它包括实际上没有<input>作为直接子级的单元格),似乎忽略了>子级选择器......

有没有办法使用 .has() 方法获得与 :has() 选择器相同的结果?

4

3 回答 3

2

input我相信首先找到 all的,然后是他们的 parent会更有效率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 回答