替换STYLE内容javascript HTML

时间:2011-11-25 05:55:48

标签: javascript html regex replace

我有一个JavaScript变量:

var s =   
 "<html><head><style>body{a:b;c:d}</style></head><body></body></html>";

首先,我正在提取<style>标记内的内容:

s = s.split(/(<style[^>]*>|<\/style>)/i)[2]; 

// s == "body{a:b;c:d}";

然后我正在使用s执行某些操作,并且在操作之后我需要将其附加到<style>标记。

如何在s<style>之间插入</style>

示例:已修改var s =“body {x:h; f:l;}”;

所以我需要这样的结果内容:

 "<html><head><style>body{x:h;f:l;}</style></head><body></body></html>";

更新:允许jQuery - 但只有字符串操作    允许。纯JavaScript解决方案具有第一优先权。

3 个答案:

答案 0 :(得分:3)

var s  = "<html><head><style>body{a:b;c:d}</style></head><body></body></html>";
var b = s.split(/(<style[^>]*>|<\/style>)/i)[2]; 
s = s.replace(b,"body{x:h;f:l;}");

最后,s就是你想要的。

答案 1 :(得分:0)

这适合你吗?

var s  ="body{a:b;c:d}";
    var newS = s.replace("body{a:b;c:d}", "body{x:h;f:l;}");
    alert(s);
    alert(newS);

答案 2 :(得分:0)

使用下面提到的代码

var someHTML = "<html><head><style>body{a:b;c:d}</style></head><body></body></html>";
var styleContents = someHTML.split(/(<style[^>]*>|<\/style>)/i)[2];
document.getElementById('style').innerHTML = styleContents;