如何jQuery选择<td>只有一个复选框

Edw*_*son 5 jquery jquery-selectors

目标

我想选择<td>仅包含复选框的元素.我想用一个选择器(不使用选择器外的链接或逻辑)来执行此操作,以便我可以使用带有jQuery函数的选择器,如livedelegate.

更大的图片是我想在这些<td>s 上监听点击事件并将点击事件传递给复选框,从而创建更大的点击区域.这很重要,因为<tr>当用户点击并错过复选框时,我也不想激活不同的点击事件.

具体细节

我创建了一个带有示例场景的jsfiddle:http://jsfiddle.net/ytA3X/

这是我开始使用的不起作用.换句话说,选择任何具有复选框但没有任何复选框的td元素.

$('td:has(:checkbox):not(:has(:not(:checkbox)))')
=> []
Run Code Online (Sandbox Code Playgroud)

:not(:has(...))适用于我的jsfiddle示例.

:has(:not(...))适用于我的jsfiddle示例.

:not(:has(:not(...))) 似乎总是选择什么.

是否有一种不同的方式我可以选择只有一个复选框的td元素,或者我做错了什么?

Eva*_*ski 8

如何使用:only-child:

$('td:has(:checkbox:only-child)')...
Run Code Online (Sandbox Code Playgroud)

的jsfiddle