1

在这里,我尝试用 JS 制作一个新文档:

  objDoc.open();
  objDoc.write( "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">" );
  objDoc.write( "<html>" );
  objDoc.write( "<body>" );
  objDoc.write( "<head>" );
  objDoc.write( "<title>" );
  objDoc.write( document.title );
  objDoc.write( "</title>" );
  objDoc.write( jStyleDiv.html() );
  objDoc.write( "</head>" );
  objDoc.write( this.html() );
  objDoc.write( "</body>" );
  objDoc.write( "</html>" );
  objDoc.close();

在我关闭文档之前(可能是在我将内存中的另一个文档的 html 写入新文档的正文之后),我想删除与某个类和/或 ID 匹配的任何元素。jQuery 解决方案还可以。有没有办法做到这一点?

谢谢!

4

2 回答 2

1

使用 jQuery删除功能。

$(".myclass").remove();

或者

$("#myID").remove();


编辑:这不会改变 CSS。“.myclass”等类 CSS 表示法是一种选择节点的 jQuery 方法,它使用类 css 表示法,以便程序员使用熟悉的选择 DOM 节点的方法。remove() API 从 DOM 中删除所有匹配的节点。例如,执行 $(".myclass").remove() 你会得到:

在执行 $(".myclass").remove() 之前

<html>
    <head>
        <style type="text/css">
            .myclass {
                border: 1px solid black;
            }
        </style>
    </head>
    <body>
        <p class="myclass">Paragraph one</p>
        <p>Paragraph two</p>
    </body>
</html>

执行 $(".myclass").remove() 之后

<html>
    <head>
        <style type="text/css">
            .myclass {
                border: 1px solid black;
            }
        </style>
    </head>
    <body>
        <p>Paragraph two</p>
    </body>
</html>
于 2012-08-23T00:08:10.177 回答
1

AresAvatar 建议的解决方案是正确的,添加了一个解决您提到的问题的附加项:要执行的 jQuery 命令是

$(".myclass", objDoc).remove();

jQuery 的第二个参数是执行命令的上下文。这样它就不会应用于整个页面!请参阅以下来自 jQuery 文档的 URL。

api.jquery.com/jQuery/

平底锅

于 2012-08-23T20:44:22.357 回答