Javascript - 搜索网站的HTML并替换它?

时间:2013-09-22 23:39:19

标签: javascript html css jscript

好吧,就像我的标题所说的那样。 是否可以搜索整个页面的HTML / CSS,然后使用JavaScript替换某些字符串?

我试着自己做点什么,但我做错了。

var i, sig = document.getElementsByClassName('signaturecontainer');
for (i = 0; i < sig.length; i++)
{
    var str = sig[i].innerHTML;
    var n = str.replace(/< div style='250px;overflow:scroll;'/g, "< div > style='height:100%'");
}

为什么我要替换字符串而不是使用.innerHTML而只是编辑是因为我要更改的div没有ID / Class。

这就是我需要更改的行:

  

            <!-- edit note -->
            <blockquote class="postcontent lastedited">

                    Last edited by X; Today at <span class="time">06:32 AM</span>.


            </blockquote>
            <!-- / edit note -->



            <div style="height:250px;overflow: auto;"> // <--- This one.
                <blockquote class="signature restore"><div class="signaturecontainer">text here</div></blockquote>
            </div>

        </div>

2 个答案:

答案 0 :(得分:1)

这一行会给你带来麻烦:

    var new = str.replace(/< div style='250px;overflow:scroll;'/g, "< div > style='height:100%'");
  • new是保留字。将其更改为newstr或其他任何内容。
  • 你的正则表达式模式不太可能找到任何东西:它搜索的内容是无效的CSS
  • 您要插入的字符串不是有效的HTML / CSS。它应该是<div style='height:100%;'>

我觉得,如果你只是调整造型,那么这是一种笨拙的方式。您可以使用Javascript直接更改样式。

var i, sig = document.getElementsByClassName('signaturecontainer');
for (i = 0; i < sig.length; i++)
{
  sig[i].parentNode.style.height = "100%";
}

答案 1 :(得分:0)

我们不是不可能,使用JavaScript,您可以通过找到您要更改的标记来解析HTML文档。例如

    <div id="getThisChanged">change this text</div>

通过执行下一行JavaScript,您可以更改标记内的文本

            document.getElementById('getThisChanged').innerHTML("text is now changed");

文本将更改为“文本现已更改”