【问题标题】:jQuery scripts execution order and optimizationjQuery脚本执行顺序和优化
【发布时间】:2021-02-04 15:25:26
【问题描述】:

为了通过一些动态生成的空 div 来清理 DOM,我编写了以下 jQuery 脚本,基本上我的 div 包含空 span 和 br 和不包含任何内容的 div,它们都需要消失。通过按以下顺序从控制台执行它们,我发现它们将完美地清理我的文档,而不会留下一个空的 div。

$('.release--content div span:empty').remove();

$('.release--content div br:empty').remove();

$('.release--content div:empty').remove();

有没有办法通过编写一个脚本来避免运行多个单独的脚本?谢谢。

【问题讨论】:

    标签: javascript html jquery css


    【解决方案1】:

    您只能将前两个选择器组合为一个,因为最后一个取决于前两个.remove()

    $('.release--content div span:empty, .release--content div br:empty').remove();
    
    $('.release--content div:empty').remove(); // the divs are only empty if the first line is run
    

    【讨论】:

      【解决方案2】:

      您可以使用一个选择器完成所有操作:

      $('.release--content div span:empty, .release--content div br:empty, .release--content div:empty').remove();
      

      或者,也许更容易阅读:

      $('
        .release--content div span:empty,
        .release--content div br:empty,
        .release--content div:empty
      ').remove();
      

      【讨论】:

      • 我刚刚尝试过,空的 div 并没有从 DOM 中删除,只是那些包含空 br 和 span 的。我需要再次运行脚本以使它们消失。
      • 尝试$('.release--content div span:empty,.release--content div br:empty').parent().remove()删除空<span>和<br>标签的父div。
      猜你喜欢
      • 2019-04-16
      • 2017-08-23
      • 2017-03-14
      • 2015-02-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-10-10
      相关资源
      最近更新 更多