【问题标题】: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()
希望对你有帮助
【解决方案3】:
您可以使用document.getElementById(id) 获取一个元素
或者getElementsByClassName(class)然后过滤返回的数组
使用更好的 id 或类可以帮助您完全避免过滤,只需给所有画布一个类并全部替换即可。