(一般问题确实已经被问过了,但是这里给出的答案提供了一个很好的方法来解决这里提出的问题,而不是其他问题'幕后的解释...... )
我试图突出显示包含输入字段的表格(包含嵌入表格)中的所有单元格。
示例代码:jsFiddle
我可以使用$('#rec td:has(>input)')
执行此操作,但我更倾向于使用.has() method作为:has() selector提及性能问题的文档 - 我的表可能会变得很大,有几个嵌入式表格和我 - 仍然 - 必须支持IE6 ......
然而,$('#rec td').has('>input')
不起作用(它包括实际上没有<input>
作为直接子项的单元格),似乎忽略了>
子选择器...
有没有办法使用.has()方法获得与:has()选择器相同的结果?
答案 0 :(得分:2)
我相信首先找到所有input
,然后找到他们的父td
更高效:
$('#rec input').closest('td').css('background-color', 'blue');
这样就不需要检查每个表格单元格及其子代。
<强> FIDDLE
答案 1 :(得分:0)
尝试删除&gt;来自.has()
答案 2 :(得分:0)
$('#rec td').has('input').addClass('highlight')
或
$.each($('#rec td').has('input'), function(){
$(this).addClass('highlight');
});