提取没有特定内容的正文元素 child

Extract body element without a particular child

有没有办法在没有特定 child 元素的情况下提取正文元素?

例如,如果我有:

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

,我需要提取的是:

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

实际上,我打算使用 html2canvas 库从 HTML 代码中生成 canvas 元素,但我不想包含所有正文 children在 canvas 元素中。

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

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

这是针对多个

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

希望对您有所帮助

你可以用document.getElementById(id)得到一个元素

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

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