从页面中删除特定的html标记

时间:2015-10-26 05:34:08

标签: javascript html dom

我需要从我的html页面中找到并删除这个特殊标签:

  

<div style="margin-top: 15px;">Access Denied</div>

我如何做到这一点?我见过以下

但我仍然无法理解如何从当前的整个html文档中找到并删除与此字符串匹配的确切标记。

有什么办法吗?

感谢。

编辑: 我只能访问修改内容:`

<div style="height: 200px;width: 500px; overflow: auto;" id="message">

` 这是加载页面时的整个html文档:

<html>
    <head>
        <meta content="text/html; charset=UTF-8" http-equiv="Content-Type">
            <meta content="text/html; charset=ISO-8859-1" http-equiv="content-type">
                <title>Access Denied</title>
                <style type="text/css">.accessdeniedtextfont{FONT-WEIGHT: bolder;FONT-SIZE: 12px;COLOR: #565656;FONT-FAMILY: arial,san-serif;TEXT-DECORATION: none}.accessdeniedcategoryfont{font-weight:bold;  FONT-SIZE: 12px;COLOR: #336699;FONT-FAMILY: verdana,arial,san-serif;TEXT-DECORATION: none}</style>
                <meta http-equiv="Content-Language" content="en-us">
                    <script src="/javascript/validation/DefaultDeniedMessagePreview.js" type="text/javascript"/>
                </head>
                <body style="background: #FFFFFF;font-family: Arial;font-size: 12px;font-weight: bold;color: #565656;">
                    <form name="previewform">
                        <table width="100%">
                            <tbody>
                                <tr>
                                    <td align="center">
                                        <div style="background: #FFFFFF;margin-top: 9%;box-shadow: 0px 0px 10px #666666;border: 1px solid #CCCCCC;width: 600px;;height:auto">
                                            <table width="100%" cellspacing="0" cellpadding="0" align="center" style="text-align: left;">
                                                <tbody>
                                                    <tr>
                                                        <td height="15px" colspan="5">&nbsp;</td>
                                                    </tr>
                                                    <tr>
                                                        <td width="7%">&nbsp;</td>
                                                        <td style="color: #B02B2E;font-size: 20px;font-weight: bold;" colspan="2">
                                                            <div style="margin-top: 15px;">Access Denied</div>
                                                        </td>
                                                        <td height="75" align="right">
                                                            <img width="125" height="70" onload="callToSetImageSize(this)" src="/images/customizeimages/denied_topbar.jpeg?v=1445858787891" name="headerimage" id="headerimage">
                                                            </td>
                                                            <td width="7%">&nbsp;</td>
                                                        </tr>
                                                        <tr>
                                                            <td align="center" colspan="5">
                                                                <div style="width: 98%;height: 2px;margin-bottom: 5px;text-align: center;border-top: 1px solid #CCCCCC;"/>
                                                            </td>
                                                        </tr>
                                                        <tr>
                                                            <td>&nbsp;</td>
                                                            <td height="30px" colspan="3">
                                                                <div style="height: 200px;width: 500px; overflow: auto;" id="message">
                                                                    <script type="text/javascript">&lt;br/&gt;var divs = document.querySelectorAll("div");&lt;br/&gt;&lt;br/&gt;for (var i = 0; i &lt; divs.length; i++) {&lt;br/&gt;  if (divs[i].textContent === "Access Denied") {&lt;br/&gt;    divs[i].parentNode.removeChild(divs[i])&lt;br/&gt;  }&lt;br/&gt;}&lt;br/&gt;</script>
                                                                    <br>
                                                                        <br>
                                                                            <font class="accessdeniedtextfont">
                                                                                <b>
                                                                                    <br>Hello </b>
                                                                                </font><b>
                                                                                    <font class="accessdeniedcategoryfont">{usr},</font>
                                                                                    <br>
                                                                                        <br>
                                                                                            <br>
                                                                                                <font class="accessdeniedtextfont">This site is unavailable at this time<br>
                                                                                                        <br>The page you are trying to access:</font>
                                                                                                        <font class="accessdeniedcategoryfont">{url}</font>
                                                                                                        <br>
                                                                                                            <font class="accessdeniedtextfont">is unavailable. <br>
                                                                                                                    <br>
                                                                                                                        <br>
                                                                                                                            <font class="accessdeniedtextfont">Good bye<br>
                                                                                                                                </font>
                                                                                                                            </font>
                                                                                                                        </b>
                                                                                                                    </div>
                                                                                                                </td>
                                                                                                                <td>&nbsp;</td>
                                                                                                            </tr>
                                                                                                            <tr>
                                                                                                                <td align="left" colspan="5">
                                                                                                                    <div style="width: 98%;height: 60px;margin-bottom: 5px;border-top: 1px solid #CCCCCC;margin-top: 25px;margin-left: 5px;">
                                                                                                                        <table>
                                                                                                                            <tbody>
                                                                                                                                <tr>
                                                                                                                                    <td>
                                                                                                                                        <img width="70" height="60" onload="callToSetImageSize(this)" src="/images/customizeimages/denied_bottombar.jpeg?v=1445858787891" name="footerimage" id="footerimage">
                                                                                                                                        </td>
                                                                                                                                        <td align="center">
                                                                                                                                            <a style="margin-left: 95px;color:#6E400F;font-weight: bold;font-size: 12px;display: none;" id="knowmorelink" href="#">Cyberoam is securing you. Click here to know more.</a>
                                                                                                                                        </td>
                                                                                                                                    </tr>
                                                                                                                                </tbody>
                                                                                                                            </table>
                                                                                                                        </div>
                                                                                                                    </td>
                                                                                                                </tr>
                                                                                                            </tbody>
                                                                                                        </table>
                                                                                                    </div>
                                                                                                </td>
                                                                                            </tr>
                                                                                        </tbody>
                                                                                    </table>
                                                                                </form>
                                                                                <script type="text/javascript">
    initDefaultDeniedMessagePreview();  
    setLabelValue();
                                                                                </script>
                                                                            </body>


                                                </html>

2 个答案:

答案 0 :(得分:3)

尝试使用document.querySelectorAll("div")选择所有div元素。使用for循环检查每个div元素是否.textContent匹配&#34;访问被拒绝&#34; ,如果找到匹配项,请使用.removeChild()删除节点

&#13;
&#13;
var divs = document.querySelectorAll("div");

for (var i = 0; i < divs.length; i++) {
  if (divs[i].textContent === "Access Denied") {
    divs[i].parentNode.removeChild(divs[i])
  }
}
&#13;
<div style="margin-top: 15px;">Access Denied</div>
&#13;
&#13;
&#13;

答案 1 :(得分:1)

您可以使用XPath解决该元素:

//div[text() = 'Access Denied']

然后,您可以使用document.evaluate找到该元素并将其删除。

如果重要的话,这可能比自己迭代所有div更快。

对于那些仍在学习XPath的人来说,双斜杠(//)意味着在任何级别,任何地方寻找匹配。 div部分显然意味着找到标记名为“div”的元素。方括号中的部分([])是缩小要选择的div的条件。

以下是一些示例代码:

var divs, div, xpath = "//div[text() = 'Access Denied']";

divs = document.evaluate(xpath, document, null, XPathResult.ANY_TYPE, null); 
while (div = divs.iterateNext()) div.parentNode.removeChild(div);

document.evaluate上的MDN page提供了一些有关优化此功能的建议。