-1

好吧,就像我的标题所说的那样。是否可以搜索整个页面的 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/类。

这是我需要更改的行:

            <!-- 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>
4

2 回答 2

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%";
}
于 2013-09-22T23:50:34.407 回答
0

我们不会,这不是不可能的,使用 JavaScript,您可以通过定位您要更改的标签来解析 HTML 文档。例如

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

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

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

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

于 2013-09-22T23:49:26.227 回答