jQuery - rule for "does not contain element" jQuery - rule for "does not contain element" jquery jquery

jQuery - rule for "does not contain element"


If you're matching the a do this:

var result  = $('#root > li:not(:has(ul)) > a');

If you want to allow deeper nested <ul> elements, and just want to check to make sure only the direct children don't have a <ul>, you could do this:

var result  = $('#root > li:not(:has(> ul)) > a');

EDIT:

To have more than one selector at the same time, separate them with a comma inside the quotes:

var result  = $('#root > li:not(:has(> ul)) > a, #someOtherElement');


$('#root a').click(function(e) {    if ( $(this).parents('ul').length > 1 ) {       e.preventDefault(); // cancel action for anchors inside of #root who have multiple parent list elements     }});

Change logic per requirement.