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

标签 jquery jquery-selectors css-selectors

我需要一个选择器,其中包含:

Any table cell that has a checkbox in it

现在,我正在使用:

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

它有效,但可能不是“最好的”。

最佳答案

使用the :has() selectorthe has() method :

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

请注意input:checkbox相当于 Sizzle/jQuery 中的 input[type="checkbox"]

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

$('td:has(input:checkbox)').on('click', function() {
  $('input:checkbox', this).click();
});

或者……

$('td').has('input:checkbox').on('click', function() {
  $('input:checkbox', this).click();
});

请注意,.has():has 更高效:http://jsperf.com/jquery-has-vs-has虽然 :has() 恕我直言,可读性稍高一些。

关于jquery - jQuery 中需要一个 "HAS A"选择器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9301459/

相关文章:

css子最大深度选择器

javascript - 窗口 innerWidth 大小更改时的 AngularJS 事件

javascript - 如何获得 HTML 按钮以通过函数传递表单的字符串?

javascript - 在Javascript中从其他框架访问框架的元素

jquery - 为 Fancybox 添加缩放功能

jquery - 根据选择值显示/隐藏 div

javascript - 根据名称选择jquery中的输入字段

javascript - jQuery 插件在 WordPress 中不起作用

css - 在第一个 child li 中选择类(class)

html - 如何选择表中的所有第一个 td