目标
我想选择<td>
只包含一个复选框的元素。我想使用单个选择器(不使用选择器外部的链接或逻辑)来执行此操作,以便我可以将选择器与 jQuery 函数(如live
or )一起使用delegate
。
更大的图是我想在这些<td>
s上监听点击事件并将点击事件传递给复选框,从而创建更大的点击区域。这很重要,因为<tr>
当用户单击并错过复选框时,我不想激活不同的单击事件。
具体情况
我用一个示例场景创建了一个 jsfiddle:http: //jsfiddle.net/ytA3X/
这就是我开始的那个不起作用。换句话说,选择任何具有复选框但没有任何不是复选框的 td 元素。
$('td:has(:checkbox):not(:has(:not(:checkbox)))')
=> []
:not(:has(...))
适用于我的jsfiddle 示例。
:has(:not(...))
适用于我的jsfiddle 示例。
:not(:has(:not(...)))
似乎总是什么都不选择。
有没有其他方法可以让我只用一个复选框来选择 td 元素,还是我做错了什么?