Seleccioné un grupo de elementos div de una tabla, filtré la selección solo a los elementos div que contienen la clase __gwt_cell y los guardé en una matriz con este comando
var myarray = $('table > tbody > tr > td > div').filter('div[__gwt_cell]') Ahora me gustaría excluir de esta selección todos los elementos div que contienen un elemento span , por lo que todos los fragmentos son como este:
<div style="outline-style:none;" __gwt_cell="cell-gwt-uid-615" tabindex="0"> <span class="gwt-CheckBox"> <input type="checkbox" class="filled-in" tabindex="-1" value="on" id="gwt-uid-708"> <label for="gwt-uid-708"></label> </span> </div>Para hacer esto, leí este hilo , revertí la sintaxis de la solución y escribí este comando
var myarray = $('table > tbody > tr > td > div').filter('div[__gwt_cell]').filter('div:not(div span)');que lamentablemente no funciona.
¿Cómo puedo obtener el resultado deseado?
el selector :has() es lo que necesitas
var myarray = $('table > tbody > tr > td > div').filter('div[__gwt_cell]').not('div:has(span)'); la última parte del comando, es decir .not('div:has(span)') , está diciendo
"excluir elementos div que tengan al menos un elemento span como elemento secundario "