【问题标题】:Extract body element without a particular child提取没有特定子元素的正文元素
【发布时间】:2016-05-10 18:52:42
【问题描述】:

有没有办法在没有特定子元素的情况下提取 body 元素?

例如,如果我有:

<body>
  <div id="id1" class="class1" />
  <div id="id2" class="class2" />
</body>

,我需要提取的是:

<body>
  <div id="id1" class="class1" />
</body>

实际上,我打算使用html2canvas 库从 HTML 代码中制作 canvas 元素,但我不想在 canvas 元素中包含所有 body 子元素。

【问题讨论】:

    标签: javascript jquery html html2canvas


    【解决方案1】:

    如果您检索一个父元素,那么您还必须获取它的所有子元素。在这种情况下,一种可能的解决方法是选择body,克隆它,然后删除不需要的子元素,如下所示:

    var $bodyClone = $('body').clone();
    $bodyClone.find('#id2').remove();
    // use $bodyClone as needed here...
    

    【讨论】:

    • 这就是我正在寻找的解决方案。谢谢!
    • 没问题,很高兴为您提供帮助
    【解决方案2】:
    $('body').not("#id2").html(); 
    or 
    $('body').not(".class2").html();
    

    这是多个

    $( "div" ).not( ".someclass, #someid,.class").html()
    

    希望对你有帮助

    【讨论】:

    • 很遗憾,not() 选择器的工作方式并非如此。
    【解决方案3】:

    您可以使用document.getElementById(id) 获取一个元素

    或者getElementsByClassName(class)然后过滤返回的数组

    使用更好的 id 或类可以帮助您完全避免过滤,只需给所有画布一个类并全部替换即可。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-10-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-03-09
      相关资源
      最近更新 更多