使用javascript删除所有html标签中的背景样式

时间:2015-01-12 12:48:24

标签: javascript html css regex stylesheet

如何删除所有HTML标记中的所有background="..."?我理解尝试使用正则表达式解析HTML并不是一个好主意,但我不知道任何方式。 (尝试正则表达式"background([\s\S]*?)(;|\")" - 不起作用)。 感谢。

4 个答案:

答案 0 :(得分:2)

通过简单的脚本,您可以使用此代码,

    <script>
    var allElements = document.childNodes;
    for (var i = 0; i < allElements.length; i++)
    {
        var currElement = allElements[i];
        if (currElement.hasAttribute("background"))
        {
            currElement.removeAttribute("background");
        }
    }
    </script>


and to solve your mentioned issue,
use this,

use this to solve this issue,
`<script>
        function removeBackground(cElement) {
            var allElements = cElement.childNodes;
            if (allElements.length > 0) {
                for (var i = 0; i < allElements.length; i++) {
                    var currElement = allElements[i];
                    if (currElement.childNodes.length > 0) {
                        removeBackground(currElement);
                    }
                    if (currElement.hasAttribute("background")) {
                        currElement.removeAttribute("background");
                    }
                }
            }
        }
     removeBackground(document);
    </script>`

答案 1 :(得分:1)

$(document).ready(function(){
	$('*').removeAttr('background');
});
<!DOCTYPE html>
<html>
<body background="https://www.google.co.in/images/srpr/logo11w.png">

<h1>Hello world!</h1>
<p>The background attribute is not supported HTML5. Use CSS instead.</p>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>

</body>
</html>

您可以使用jquery删除所有背景属性,例如

$('*').removeAttr("background");

答案 2 :(得分:0)

使用jQuery,你可以使用一个简单的选择器:

$("*").css('background', 'transparent');

background属性而不是style:

$("*").removeAttr('background');

如果没有jQuery,还需要做更多的工作:

var elements = document.getElementsByTagName("*");

for (var i = 0, i < elements.length; i++) {
    elements[i].style.background = "transparent";
}

原始背景属性:

var elements = document.getElementsByTagName("*");

for (var i = 0, i < elements.length; i++) {
    if (elements[i].hasAttribute("background")) {
        elements[i].removeAttribute("background");
    }
}

答案 3 :(得分:0)

您可以添加自定义工作表以覆盖背景属性 像这样

var style = document.createElement('style');
document.head.appendChild(style);

// Depend on browser implementation
if (style.sheet.insertRule) {
    style.sheet.insertRule("* { background:none !important }", 0);
} 
else if (style.sheet.addRule) {
    style.sheet.addRule("*","background:none !important", 0);
}