2011-11-07 28 views
6

To powinien być naprawdę prosty problem, ale nie mogę w pełni zrozumieć, co robię źle. Usiłuję dostępu do właściwości CSS „border-bottom” tak:jQuery- .css() nie działa dla danych wejściowych

var temp = $('#divName').css('border-bottom'); 

Niestety, po tym, temp zawiera ciąg ""

Czy ktoś wie dlaczego to nie działa lub co należy zrobić inaczej, aby działał? Dzięki.

+0

czy próbowałeś 'borderBottom'? –

+0

Czy '# divName' zawiera już właściwość' border-bottom'? – Sparky

Odpowiedz

8

Style muszą być bardziej szczegółowe . Ponieważ border-bottom jest krótką właściwością dla innych właściwości (podobną do background, aby nadać nazwę wspólną), właściwość musi być jawnie podana.

var elem = $('#divName'); 
var border_width = elem.css('border-bottom-width'); 
var border_color = elem.css('border-bottom-color'); 
var border_style = elem.css('border-bottom-style'); 
var border_bottom = border_width + " " + border_color + " " + border_style; 

Fiddle: http://jsfiddle.net/6wRj4/
Patrz także: MDN: border-bottom short-hand.

+0

Warto wspomnieć, że jest to * nie * uznawane za błąd w jQuery. jQuery zgłasza atrybuty CSS dokładnie tak, jak przeglądarka zwraca je, a różne przeglądarki czasami zwracają różne odpowiedzi dla tego samego dokumentu HTML. – Blazemonger

+0

W rzeczywistości używane są metody 'window.computedStyle()' i 'element.currentStyle []' (IE). Niektóre wartości są modyfikowane przez jQuery, aby wyświetlać ten sam wynik w różnych przeglądarkach. –

+0

Ahh. Teraz to ma sens. Widziałem coś takiego w dokumentach Jquery, ale nie wstawiłem 2 i 2 razem. Dziękuję Ci. – gabaum10

2

Sprawdź, czy $ ("# divName") wybiera pojedynczy element. Możesz użyć składni tablic na obiekcie jquery, aby odzyskać podstawowy obiekt DOM. Powinieneś również sprawdzić (na przykład używając Firebug), aby upewnić się, że element DOM, który oglądasz, ma styl, którego szukasz.

Jeśli obie te rzeczy działają prawidłowo, można spróbować użyć bardziej ziarnistych właściwości granicy ... border-bottom-style, border-bottom-width, itp

0

Spróbuj z document.getElementById("divName").style.borderBottom;.

Powiązane problemy