我想只删除那些没有自定义属性的li的ul。我正在尝试这个
$myParent.children('li ul:not("ul[isClicked=True]")').remove();
但无法让它发挥作用。任何帮助将不胜感激。
答案 0 :(得分:1)
如果我理解正确,您希望删除包含 ul
的{{1}}个li
,其属性为isClicked
= "True"
:
$myParent.find("li[isClicked=True]").parent("ul").remove();
请注意,该属性必须包含单词"True"
;它是一个字符串,而不是布尔值。
根据您的评论:
我实际上反过来也在寻找。删除所有没有自定义属性的ul。
这与你问题的开头句子相反(“我只想删除那些带有自定义属性的那些ul”)。 :-)假设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,该属性名称不会validate。您可以考虑切换到data-*
attribute form。