我有上面的代码
` <ul id="jsddm">
<li><a href="Default.aspx">
Menu</a>
<ul style="visibility: hidden;">
<li><a href="Content.aspx?ID=153">
SubMenu</a></li>
<li><a href="Content.aspx?ID=152">
SubMenu</a></li>
</ul>
</li>
<li><a href="#">
Menu</a>
<ul style="visibility: hidden;">
</ul>
</li>
</ul>
</div>`
我想删除空的sub “ul”标签,当我的页面加载时,这些标签没有“li”标签和jquery。 我能怎么做?谢谢你的帮助。
答案 0 :(得分:27)
$('ul').not(':has(li)').remove();
答案 1 :(得分:9)
$("ul").each(
function() {
var elem = $(this);
if (elem.children().length == 0) {
elem.remove();
}
}
);
答案 2 :(得分:4)
如果您的UL元素确实为空,并且不包含任何空格,则jQuery :empty
选择器将起作用。
要检查空白和带空格的元素,您可以执行以下操作:
$("#jsddm ul").each(function(i, el) {
// Remove white space
var html = $(el).html().replace(/\s+/, "");
// Check if element is :empty or length of html is zero
if ($(el).is(":empty") || html.length == 0)
$(el).remove();
});
答案 3 :(得分:3)
我认为这就是你要找的东西:
$('#jsddm ul').each(function() {
if ($(this).children().length == 0) {
$(this).remove();
}
});
它删除了id为jsddm且不包含子节点的元素下的所有<ul>
元素。
答案 4 :(得分:0)
我想:
$('li ul:empty').remove();
会做你想做的事。
答案 5 :(得分:0)
试试这个:
$(document).ready(function () {
$("#jsddm ul").empty();
});