我正在构建一个jQuery mini-plugin来显示打印预览,然后打印我的应用程序运行的一些报告的结果。我需要能够不打印某些部分(例如:没有结果的报告,UI元素等)。我试过css @media print无济于事。我不知道为什么它不起作用,但我完全按照w3schools媒体类型页面上的描述实现它,IE仍然想要打印这些元素。
所以我决定暴力破解它,只是从克隆的DOM中删除.noPrint元素。事实证明,这将解决我期待的计划“输出到.pdf”功能的问题。
我的问题是,而
$(clonedHtml).find('.noPrint')
很好地返回了noPrint元素的集合,
$(clonedHtml).remove('.noPrint')
不删除任何内容。我也尝试过这样删除它:
var removeMe = $(clonedHtml).find('.noPrint');
clonedHtml.remove(removeMe);
这显然也不起作用。此语法基于API文档的第二个示例:
$("p").remove(":contains('Hello')");
Removes all paragraphs that contain "Hello" from the DOM. Analogous to doing
$("p").filter(":contains('Hello')").remove().
真正的问题:为什么?我检查了删除()的API文档,我已经阅读了我在谷歌上找到的所有内容,并且我搜索了jQuery论坛但找不到任何内容。
答案 0 :(得分:5)
请改为尝试:
$(clonedHtml).find('.noPrint').remove();