javascript - 如何在 DOM 更改后检查元素是否为空?

标签 javascript jquery html dom

我有这个代码:

$(function() {
  $('.delete').click(function() {
    $(this).closest('li').remove();
  });

  $('#items').change(function() {
    if ($(this).is(':empty')) {
      alert('No more conditions');
    }
  });
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<ul id="items">
  <li><a href="#" class="delete">Delete me</a></li>
</ul>

只要我点击链接,我就会得到一个空的 UL 但在 .change() 事件上使用 .is('empty') 不会触发警报。

在 DOM 更改后检查元素是否为空的正确方法是这样吗?如果不是,哪个才是正确的?

Note: the solution has to be compatible with older browsers like IE8

最佳答案

这个解决方案怎么样。希望对您有所帮助!

$(function() {
  $('.delete').click(function() {
  $(this).closest('li').remove();
  if ($('#items li').length === 0) {
  alert('No more conditions');
  }
});
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.1.1/jquery.min.js"></script>
<ul id="items">
  <li><a href="#" class="delete">Delete me</a></li>
</ul>

关于javascript - 如何在 DOM 更改后检查元素是否为空?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40598254/

相关文章:

javascript - 替换 div 内容 ajax bootstrap

javascript - 在 Jquery Mobile/Javascript 中使用推送通知

javascript - 如何获取当前 session 的JSESSIONID

javascript - AngularJS 计算 "action"属性中的表达式

javascript - 设置 d3.curveBundle.beta 似乎没有效果

javascript - 父级的 setState 不会触发子级的 componentWillReceiveProps

javascript - 如何在覆盖窗口关闭时将选定选项更改为特定值?

javascript - Drupal 7 #ajax 更改事件阻止同一元素上的其他更改事件处理程序

jquery - 使用 JqueryUiDialog 而不是 Fancybox 制作这个弹出窗口

javascript - Three.js 不会在 div 中呈现