Javascript 更改页面上所有元素的css背景
我想通过以下方式向页面地址添加字符串来更改页面上每个元素的背景图像: 从样式中获取元素的背景图像地址:Javascript 更改页面上所有元素的css背景,javascript,css,Javascript,Css,我想通过以下方式向页面地址添加字符串来更改页面上每个元素的背景图像: 从样式中获取元素的背景图像地址: background-image: url("img/sprites.png"); 将字符串?ver=3添加到其中,使其变成如下所示 background-image: url("img/sprites.png?ver=3"); 我想我可以在一个已知元素上通过这样的方式来实现: document.getElementById('elementId').style.backgroundIma
background-image: url("img/sprites.png");
将字符串?ver=3
添加到其中,使其变成如下所示
background-image: url("img/sprites.png?ver=3");
我想我可以在一个已知元素上通过这样的方式来实现:
document.getElementById('elementId').style.backgroundImage += "?ver=3"
我说得对吗
但是,我想对所有元素都这样做。如何让循环访问所有元素?您可以使用
document.getElementsByTagName
:
var elms = document.getElementsByTagName('*');
for (var i = 0, len = elms.length; i != len; ++i) {
elms[i].style.backgroundImage += '?ver=3';
}
或者,可以使用DOM直接修改样式表对象。您必须为不同的浏览器编写单独的代码路径,但它可能会运行得更快。您可以尝试使用jquery
$("*").css('backgroundImage', $(this).css('backgroundImage')+'?ver=3');
我只是从内存中输入了这个,所以它可能不是100%,但它似乎可以工作
可能是这样的:
$("*").each(function(){$(this).css('backgroundImage', $(this).css('backgroundImage')+'?ver=3');});
希望这能对您有所帮助。也许jquery有类似的功能:
$('*').each(function(){
$(this).css( 'background-image', $(this).css('background-image') + "?ver=3");
});
我希望在选择器中使用$('body*'),以不包括head和html等元素。假设要分配背景的元素被包装在一个div中,类为'mysprites':
<div id="mysprites">
<div></div>
<div></div>
<div></div>
</div>
像这样
(如果您不知道jquery,只需使用它并将其添加到html文件的头中,如:
<script language="javascript" type="text/javascript" src="jquery.js"></script>
页面中的每个元素都有一个背景图像?甚至一些元素,如
标题
、表格
或选择
?
<script language="javascript" type="text/javascript" src="jquery.js"></script>