用replace()替换HTML部分?

时间:2013-09-23 11:02:05

标签: javascript html css

我正在尝试制作一个现在看起来像这样的简单用户:

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

我试图这样做,看看它是否输出了我想要输出的正确内容;

var i, sig = document.getElementsByClassName('after_content');
for(i = 0; i < sig.length; i++) {
    console.log(sig[i].innerHTML);
}

它会输出类中的东西(我想编辑一小部分)。 但是当我尝试发布的第一个代码(str.replace one)时,它不会编辑它。

after_content包含的内容:

    <div class="after_content">     
        <div style="height:250px;overflow: auto;">
            <blockquote class="signature restore"><div class="signaturecontainer">signature here</div></div></blockquote>
        </div>      
    </div>      
    <div class="cleardiv"></div>
</div>

我想编辑的那条线是;

<div style="height:250px;overflow: auto;">

..一个。

我真的很感激帮助。提前谢谢。

1 个答案:

答案 0 :(得分:0)

这是一个非常好的问题,但是因为你正在使用javascript,所以我应该使用jQuery来做这个。

首先,在页面中包含jQuery:

<script src="http://ajax.googleapis.com/ajax/libs/jquery/latest/jquery.js" type="text/javascript"></script>

然后,当你准备好了,给你想改变所有div的div“div_class”(<div class="div_class" style="height:250px;overflow:auto;">...</div>);

使用jQuery来改变你必须要做的CSS:

$('.div_class').css({
    height:100%;
    overflow:visible;
});

jquery.com

要做到这一点是原生的javascript,而不需要导入更多的库(比如jQuery),就这样做:

for (i = 0; i < sig.length; i++) {
    if (sig[i].style.height == "250px" && sig[i].style.overflow == "auto"){
        sig[i].style.height = "100%";
        sig[i].style.overflow = "visible";
    }
}

以下是使用原生JS的代码的工作示例:http://jsfiddle.net/gdSQW/3/