2013-02-02 14 views
2

У меня есть связанные с таблицей стилей следующего:Почему не работает jQuery css()?

.dirContent {width: 190px, padding: 10px;) 

Я бег этого сценария:

var npad = $(".dirContent").css("padding"); 
alert(npad); 

... Но это не работает - он возвращает поле пустого предупреждения. Теперь, если я запустил этот скрипт:

var npad = $(".dirContent").css("width"); 
alert(npad); 

Он возвращает «190px», предупреждение отображает правильное значение.

Мысли?

+2

См. Http://stackoverflow.com/questions/9135922/jquery-and-setting-css-with-shorthand –

+2

У меня нет проблем с этим [JSFiddle] (http://jsfiddle.net/Ae5aA/) –

+2

'.dirContent {width: 190px, padding: 10px;)' <- sould be ';' и '}' –

ответ

4

Две проблемы я вижу:

  • искаженный CSS (co VERED в других ответах)
  • несовместимой обработки shorthand properties

По существу, извлечения сокращенных свойств работ непоследовательна во всех браузерах. В Chrome запрос свойства «заполнить» возвращает строку с одной частью («1px»), если все 4 стороны равномерно распределены, и строка из 4 частей («1px 2px 3px 4px»), если заполнение отличается на любой из сторон ,

Но IE9 ничего не возвращает. Firefox 18 ничего не возвращает.

var npad = $(".dirContent").css("padding"); 
alert(npad); 
npad = $(".dirContent").css("padding-left"); 
alert(npad); 

Попробуйте этот пример в нескольких браузерах, и вы увидите разницу: http://jsfiddle.net/XDL3N/1/

Если вы думаете об этом, это поведение имеет смысл. Хотя стенография отлично подходит для настройки свойств, это гораздо менее полезно для , получая. Вам нужно будет проанализировать многосегментную строку, чтобы сделать что-нибудь полезное с ней.

+2

+1 для очень продуманного ответа. – Achrome

+0

Действительно отличный ответ +1 –

+1

Спасибо за быстрый ответ. Возможно, было несколько месяцев, прежде чем я понял, что не могу использовать сокращенный css. KCCO! – user2035795

3

Вы используете ,, чтобы прервать свойство CSS.

.dirContent {width: 190px; padding: 10px;} 

Вот fiddle

0

Ваше свойство CSS имеет неверный формат, он должен быть:

.dirContent {width: 190px; padding: 10px;} 

Работа скрипку: http://jsfiddle.net/XDL3N/

Смежные вопросы