我正在构建一个 jQuery 迷你插件来显示打印预览,然后打印我的应用程序运行的一些报告的结果。我需要能够不打印某些部分(例如:没有结果的报告、UI 元素等)。我试过 css @media 打印无济于事。我不知道为什么它不起作用,但我已经完全按照 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().
真正的问题:为什么?我检查了 remove() 的 API 文档,我已经阅读了我可以在谷歌上找到的所有内容,并且我已经搜索了 jQuery 论坛,但找不到任何内容。
最佳答案
试试这个:
$(clonedHtml).find('.noPrint').remove();
关于jquery - 如何从 jQuery 选择或克隆的 html 中删除元素?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9461638/