我想确定删除<ul>
标记后<li>
标记为空的时间。有人能帮助我吗?
有一个HTML代码:
$(document).on('click', '.close', function(e) {
$(this).parent().fadeOut("normal", function() {
$target.remove();
});
if ($(this).closest(".indexy").not(".info")) {
alert("prazdne");
}
});
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<ul class="indexy">
<li class="info">ASD<button type="button" class="close">×</button></li>
<li class="info">FGH<button type="button" class="close">×</button></li>
<li class="info">JKL<button type="button" class="close">×</button></li>
</ul>
&#13;
答案 0 :(得分:2)
$(document).on('click', '.close', function(e) {
$(this).closest("li").remove();
if (!$(".indexy").find('li').length) {
alert("UL is empty")
}
});
答案 1 :(得分:1)
使用想要检查的选择器时使用length属性。
if($('ul.indexy li').length < 1){
console.log('empty');
}
答案 2 :(得分:1)
我认为您无法使用$(this)
,因为您已将其从DOM
中移除。它不再是DOM
$(document).on('click', '.close', function(e) {
$(this).parent('li').remove();
if($('.indexy li').length<1){
console.log('ul empty ');
}else{
console.log('li length is :'+$('.indexy li').length);
}
});
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<ul class="indexy">
<li class="info">ASD<button type="button" class="close">×</button></li>
<li class="info">FGH<button type="button" class="close">×</button></li>
<li class="info">JKL<button type="button" class="close">×</button></li>
</ul>
&#13;
答案 3 :(得分:1)
你可以为你的js代码做这样的事情:
function removeListItem(item) {
$('#'+item).fadeOut("normal", function(){
$(this).remove();
var li = $('li.info');
alert(li.length);
if (li.length <= 0){
alert("prazdne");
}
})
}
我也改变了你的HTML。这是一个例如:
<li id="element1" class="info">ASD<button type="button" class="close" onclick="removeListItem('element1')">×</button></li>
您没有做的一件事实际上是从DOM中删除列表项。
答案 4 :(得分:0)
你可以用js做到这一点
c = C.new
c.cat
#=> "meow-meow"
c.dog
#=> "woof"
c.froggie
#=> "ribbit"
如果它有childNodes或children,它将返回&#34; true&#34;变量确认,如果不是,它将返回&#34; false&#34;。如果该列表是具有该类名的唯一元素,则该列表的索引为零。否则你将不得不迭代