I want to create a rule to target the a
element in the following:
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.