Изменяя найденный пример здесь для соответствия этому примеру, вы можете расширить JQuery, чтобы иметь новый селектор haschild, а также метод
Вы можете использовать $('#target:haschild(#test)')
, а также .haschild('#test')
$.fn.haschild = function(selector){
function filterMethod(){
if (selector) {
return $(this).children(selector).length >= 1;
}
return $(this).children().length >= 1;
}
return this.filter(filterMethod);
}
$.expr[':'].haschild = function(objNode,intStackIndex,arrProperties,arrNodeStack){
var selector = arrProperties[3];
if (selector) {
return $(objNode).children(selector).length >= 1;
}
return $(objNode).children().length >= 1;
}