【问题标题】:How do I remove elements from a jQuery selection or cloned html?如何从 jQuery 选择或克隆的 html 中删除元素?
【发布时间】:2012-02-27 07:54:43
【问题描述】:

我正在构建一个 jQuery 迷你插件来显示打印预览,然后打印我的应用程序运行的一些报告的结果。我需要能够不打印某些部分(例如:没有结果的报告、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(). 

真正的问题:为什么?我检查了 remove() 的 API 文档,我已经阅读了我在 google 上可以找到的所有内容,并且我搜索了 jQuery 论坛并且找不到任何内容。

【问题讨论】:

  • 在google和论坛之前阅读的第一名是api规范api.jquery.com/remove
  • 我没有投票给你,因为这个问题的表述很好;在我的评论中,我只是想让您注意,在这里询问的时间可能足以让您再次阅读文档
  • 好的。删除了我的评论。为我的假设道歉。但是,是的,那是我看的第一个地方。更新了我的问题以反映这一事实,希望对将来搜索此问题的任何人有所帮助。谢谢。
  • 好的;您是否暗示您的编辑中的文档有误?因为api文档刚刚好

标签: jquery css find clone


【解决方案1】:

试试这个:

$(clonedHtml).find('.noPrint').remove();

【讨论】:

  • 啊啊啊啊!谢谢!我是个白痴——在我庞大的测试行列表中注释掉了确切的行,除了我使用的是实际文档而不是克隆。它迷失在我一直在做的大量实验中。我会在大约 8 分钟后接受。也就是说......知道为什么 $(clonedHtml).remove('.noPrint');不工作?
  • @Will:不客气 :) 它不起作用,因为你的 remove 方法语法错误。
猜你喜欢
  • 1970-01-01
  • 2015-12-31
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-04-15
  • 1970-01-01
相关资源
最近更新 更多