Если я правильно вас понимаю, вы хотите удалить ul
s, которые содержат li
s с атрибутом isClicked
= "True"
:
$myParent.find("li[isClicked=True]").parent("ul").remove();
Обратите внимание, чтоатрибут должен содержать слово "True"
;это строка, а не логическое значение.
Живой пример
Из вашего комментария ниже:
Я ищу порок-верса на самом деле.Удалите все ul, у которых нет настраиваемого атрибута.
Это противоположно открытому предложению вашего вопроса ( "Я хочу удалить только те ul с li, которые имеют настраиваемый атрибутна нем ").:-) Вот как вы это сделаете, если предположить, что элементы ul
являются прямыми потомками $myParent
(ваш пример кода предлагает это);если это не так, просто измените .children
в первой строке на .find
:
$myParent.children("ul").each(function() {
var $ul = $(this);
if (!$ul.find("li[isClicked=True]")[0]) {
// Doesn't have one, remove it
$ul.remove();
}
});
Живой пример
FWIW, этот атрибутимя не будет проверять .Вы могли бы рассмотреть возможность перехода к атрибуту data-*
.