jQuery: diferencia sutil entre .has () y: has ()

Cuando se usa con el selector secundario>, las dos variantes de "has" de jQuery se comportan de manera diferente.

Toma este HTML:

<div>
  <span>Text</span>
</div>

Ahora:

$("div:has(>span)");

lo devolvería, mientras que:

$("div").has(">span");

no lo haría ¿Es un error o una característica? Compara aquí:http://jsfiddle.net/aC9dP/

EDITAR: Esto puede ser un error o al menos un comportamiento inconsistente no documentado.

De todos modos, creo que sería beneficioso tener el selector de niñosconsecuentemente trabajar como operador unario. Le permite hacer algo que de otro modo requeriría una función de filtro personalizada: le permite seleccionar directamente elementos que tienen ciertos elementos secundarios:

$("ul:has(>li.active)").show();     // works
$("ul").has(">li.active)").show();  // doesn't work, but IMHO it should

Opuesto a:

$("ul").filter(function () {
  return $(this).children("li.active").length > 0;
}).show();

He abiertoun boleto jQuery (7205) para esto.

Respuestas a la pregunta(2)

Su respuesta a la pregunta