在jQuery中需要一个"HAS A"选择器

Phi*_*enn 1 jquery css-selectors jquery-selectors

我需要一个选择器说:

任何包含复选框的表格单元格

现在,我正在使用:

$('td input').filter(':checkbox').each(function() {
   $(this).closest('td').addClass('CursorPointer');
});
$('td.CursorPointer').on('click',function() {
   $('input:checkbox',this).click();
});
Run Code Online (Sandbox Code Playgroud)

它有效,但它可能不是"最好的".

Mat*_*ens 7

使用:has()选择has()方法:

// select all <td> elements that have a checkbox in them
$('td:has(input:checkbox)');
// same effect
$('td').has('input:checkbox');
Run Code Online (Sandbox Code Playgroud)

注意,这input:checkbox相当于input[type="checkbox"]Sizzle/jQuery.

您的代码示例可以重写为:

$('td:has(input:checkbox)').on('click', function() {
  $('input:checkbox', this).click();
});
Run Code Online (Sandbox Code Playgroud)

要么…

$('td').has('input:checkbox').on('click', function() {
  $('input:checkbox', this).click();
});
Run Code Online (Sandbox Code Playgroud)

请注意,.has()它比:has以下更有效:http://jsperf.com/jquery-has-vs-has虽然:has()稍微更具可读性恕我直言.