Используйте селектор :has()
или метод has()
:
// select all <td> elements that have a checkbox in them
$('td:has(input:checkbox)');
// same effect
$('td').has('input:checkbox');
Обратите внимание, что input:checkbox
эквивалентнона input[type="checkbox"]
в Sizzle / jQuery.
Ваш пример кода может быть переписан как:
$('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()
немного более читабельно ИМХО.