我有点棘手。我正在尝试改变分配给样式的字符串的一部分。我想使用js将两个渐变子句中的50%更改为不同的值,而不必在js中创建整个字符串。
是否与setAttribute
一起进行某种正则表达式交换?
<a class="item" id="bob" style="
background-image:-moz-linear-gradient(0deg, rgb(0, 255, 0) 0%, rgb(250, 250, 5) 50%, rgb(252, 3, 3) 100%);
background-image:-webkit-linear-gradient(0deg, rgb(0, 255, 0) 0%, rgb(250, 250, 5) 50%, rgb(252, 3, 3) 100%);
filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#00ff00',endColorstr='#fc0303',GradientType=1);">MYtext</a>
答案 0 :(得分:0)
哎呀!
var el = document.getElementById('bob');
el.setAttribute('style', el.getAttribute('style').replace('50%', '30%'));
但这会更好:
var el = document.getElementById('bob');
el.style.backgroundImage = el.style.backgroundImage.replace(/50%/g, '30%');
答案 1 :(得分:0)
style
属性是一个对象,而不是一个字符串。所以你必须做类似的事情:
var bob = document.getElementById('bob');
var background = bob.style.backgroundImage;
if (background) {
bob.style.backgroundImage = background.replace('50%','70%');
}
如果您愿意,还可以在setAttribute
对象上使用style
:
bob.style.setAttribute('backgroundImage' ...
但在处理setAttribute
个对象时,style
在IE上无法可靠地工作(或工作方式不同)。只需使用更短且更可靠的对象访问语法:
bob.style.backgroundImage = ...