Получение значения границы CSS с помощью jQuery в Firefox 14.0.1

Я запускаю следующий код в консоли 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');

Ответ 1

Цитирование .css.

Сокращенные свойства CSS (например, margin, background, border) не поддерживаются. Например, если вы хотите получить рендерную маржу, используйте: $(elem).css('marginTop') и $(elem).css('marginRight') и т.д.

В случае border вам нужно использовать связанные свойства border-width, border-style и border-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');

Ответ 2

Попробуйте следующее:

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

FIDDLE

Ответ 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'

Являются ли поддерживаемые longhands:) Cheers! Наслаждайтесь!!!

В большинстве случаев вы можете использовать сокращение, чтобы установить границу.

Если вы уверены, что они одинаковы, сделайте что-то вроде

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

чтобы получить строку типа "2px solid rgb(255,255,255)'

Ответ 4

Возможно, вы пытаетесь использовать несколько свойств используйте следующий синтаксис

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

сокращенное свойство, не поддерживаемое в JQuery.

Ответ 5

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, left и bottom.

Это также неработающий код:

objImage.css('border-style');

Так как border, margin, padding свойства CSS редактируются отдельно. Если border-top отличается от border-left, браузер может быть сбит с толку, который он должен вернуть, когда вы только что запросили border.