2011-08-25 51 views
3

HTML:jQuery的CSS方法

<div id="that" style="margin-left: 10px; border-width: 2px"></div> 

的jQuery:

// alerts "10px 0px" which is strange, isn't it? 
alert($('#that').css('margin-left') + ' ' + $('#that').css('border-width')); 

的jsfiddle:http://jsfiddle.net/vZpAv/

为什么jQuery的那样做的?它不应该得到2px?首先,我认为这是因为CSS属性中的破折号(因为css('borderWidth')正常工作),但正如您所看到的,它对margin-left确实很好。

+0

可能重复HTTP ://stackoverflow.com/questions/5904380/jquery-css-borderwidth) –

回答

7

border-width用于设置元素上每个边框的边框宽度,但不能假定每个边框具有相同的宽度。其结果是,你需要运行类似:

$('#that').css("borderTopWidth");

但是,这仍然会返回0像素,因为你不能设置边框宽度不设置颜色和样式。

+1

边框颜色是没有必要的。他只需要指定边框样式。 – avall

+1

是的,但只是设置风格就足够了:http://jsfiddle.net/vZpAv/15/ –

+0

啊,我一直认为他们都是必需的。每一天都是学校的一天。无论如何,至少它解决了他的问题...... – BenM

1

使用火狐狸和火灾的错误,并尝试使用

Console.log();,而不是提醒

0

您可以使用下面的代码:

alert($('div').css('margin-left') + ' ' + $.style($('div')[0], 'borderWidth')); 
[jQuery的CSS边框宽度(的