是否可以从JavaScript注入的内联样式中减去一个数字?

时间:2012-11-26 16:12:38

标签: javascript jquery html

我在HTML中添加了内联样式,例如style="left: 10px;"。我可以加/减这个数字吗?

我想创建一条规则,我可以从该号码中移除8px,无论该号码是什么。

我尝试使用丑陋的!important黑客来覆盖它,但是当初始值发生变化时,这无济于事。

5 个答案:

答案 0 :(得分:17)

从1.6开始,你可以使用方便的:

$('#myelem').css('left','-=8px')

如果由于某些奇怪的原因你被困在过去,请使用:

$('#myelem').css('left', function(i,v) {
    return v - 8;
});

用于jQuery 1.4。

答案 1 :(得分:5)

也许您可以使用margin-left -8px代替。我不知道你在寻找什么,但如果没有JavaScript,它可能会成功。

答案 2 :(得分:4)

此类没有CSS规则。但是,您可以使用JavaScript执行相同操作。

假设你有,

.my_left {
   left: 10px;
}

HTML元素如下,

<div class="my_left">My Div</div>
<div class="my_left">My Div</div>

然后使用以下脚本,您可以从当前8px值中删除left

$(function () {
   $('.my_left').css('left', function (i, ov) {
       return ov - 8;
   });
});

答案 3 :(得分:0)

您可以为其使用变量,以便能够添加或减去:

var x=10;

x=x-parseInt(5);

x=x+parseInt(5);

<div id='something' style="left: "+x+"px"></div>

答案 4 :(得分:0)

我最近在css-tricks上发现您可以使用

覆盖内联css
.myClassName[style] {
   left:5px!important;
}

http://css-tricks.com/override-inline-styles-with-css/