15

我在 Firebug 控制台中运行以下代码。

$('img').css('border', 'solid 2px red').css('border');

出现红色图片边框,但返回的是空字符串,这是为什么呢?

它在 Chrome 和 Safari 开发者工具中运行良好。

更新:jQuery 文档说在获取 CSS 值时不支持速记属性。但是,我在 Firefox 中也尝试了以下方法,但没有成功(在 Chrome 和 Safari 中都可以使用)

$('img').css('border-style', 'solid').css('border-style');
$('img').css('borderStyle', 'solid').css('borderStyle');
$('img').css('border', 'solid 2px green').css('borderStyle');
4

5 回答 5

18

引用.css文档。

不支持速记 CSS 属性(例如边距、背景、边框)。例如,如果要检索渲染的边距,请使用:$(elem).css('marginTop')$(elem).css('marginRight'),依此类推。

对于 的情况,border您需要使用border-width和相关的属性。border-styleborder-color

例如border-color

$('img').css('border-top-color', 'red').css('borderTopColor');
$('img').css('border-right-color', 'red').css('borderRightColor');
$('img').css('border-bottom-color', 'red').css('borderBottomColor');
$('img').css('border-left-color', 'red').css('borderLeftColor');
于 2012-09-01T08:13:18.493 回答
4

试试这个:

var border = $('img').css('border', '2px solid red')[0].style.border;

小提琴

于 2012-09-01T08:36:44.800 回答
3

Firefox 中支持的属性:

'border-top-color'
'border-right-color'
'border-bottom-color'
'border-left-color'

'border-top-width'
'border-right-width'
'border-bottom-width'
'border-left-width'

'border-top-style'
'border-right-style'
'border-bottom-style'
'border-left-style'

是支持的长手:) 干杯!享受!!!

在大多数情况下,您仍然可以使用速记来设置边框。

如果您确定它们相同,请执行以下操作

var borderString = $('img').css('border-top-width') + " " 
                 + $('img').css('border-top-style') + " " 
                 + $('img').css('border-top-color');

得到像 "2px solid rgb(255,255,255)'

于 2012-09-01T08:17:03.313 回答
0

也许您正在尝试使用多个属性,请使用以下语法

$('img').css({'border':'solid 2px red','color':'green'})

Jquery 不支持速记属性。

于 2012-09-01T08:18:49.607 回答
0
var objImage = $('img').css('border', 'solid 2px red');
objImage.css('border-top-color');
objImage.css('border-top-width');
objImage.css('border-top-style');

不仅适用于 ,top也适用于right,leftbottom

这也是一个非工作代码:

objImage.css('border-style');

由于border, margin, paddingCSS 的属性是可单独编辑的。如果border-top不同border-left,浏览器可能会在您刚刚询问时混淆它必须返回哪个border

于 2012-09-01T08:28:28.893 回答