$(selector).css('width','+ = value')不起作用

时间:2011-07-10 18:11:52

标签: jquery

的CSS:

#obj { display:block; width:10%; height:30px; background-color:#006600; }

的javascript:

$(document).ready(function() {

$('#obj').css('width','+=10');

});

HTML:

<span id="obj"></span>

它不会增长。

4 个答案:

答案 0 :(得分:5)

$(document).ready(function() {

$('#obj').width($('#obj').width()+10)

});

http://jsfiddle.net/nvmwu/

<强> --------编辑---------------

我刚检查了jQuery资源:你的代码也是正确的,但是你需要jQuery版本1.6 +

使用不同版本的jQuery

尝试此http://jsfiddle.net/nvmwu/2/

-----------从Jquery Api中提取--------

jQuery 1.6 开始,.css()接受类似于.animate()的相对值。相对值是以+ =或 - =开头的字符串,用于递增或递减当前值。例如,如果元素的padding-left为10px, .css(“padding-left”,“+ = 15”)将导致总填充 - 左为25px

http://api.jquery.com/css/

答案 1 :(得分:2)

$(function() {
  $('#obj').css('width', function () {
    return $(this).width() + 10;
  });
});

答案 2 :(得分:2)

FF5中的

Works for me,但only as of jQuery 1.6,您在其他地方的评论表明您使用的是jQuery 1.5.2。

事实上,the documentation甚至这个:

  

从jQuery 1.6 开始,.css()接受   相对值类似于.animate()。   相对值是一个字符串开始   用+ =或 - =来增加或   递减当前值。对于   例如,如果元素的填充左侧   是10px,.css(“填充左”,“+ = 15”   )将导致总填充左   25px。

请在下次阅读。

答案 3 :(得分:0)

我使用jQuery 1.6.1遇到了这个问题。已更新至1.7.1,可以使用。

看起来这已在1.6.2中修复。从发行说明:

“。css()不适用于带连字符的属性”

的相对值

http://bugs.jquery.com/ticket/9237
http://blog.jquery.com/2011/06/30/jquery-162-released/