2010-10-19 18 views
18

Oto jak masz jeden atrybut css za pomocą jQuery:Get * wszystkich * atrybutów CSS z jQuery

$('someObject').css('attribute')

jaki sposób je wszystkie? (Bez określenia najlepiej w następującym formacie dzięki czemu może być ponownie zastosowane z jQuery później):

cssObj = { 
     'overflow':'hidden', 
     'height':'100%', 
     'position':'absolute', 
    } 

Dzięki !!

EDIT

Metody Próbuję uzyskać deklarowane są w arkuszu stylów (nie są inline). Przepraszamy za nieokreślenie.

+0

+1 myślałem zadaje to samo pytanie kilka dni temu –

+0

możliwy duplikat [jQuery można uzyskać wszystkie style CSS skojarzone z elementem?] (Http://stackoverflow.com/questions/754607/ can-jquery-get-all-css-styles-related-with-an-element) – alex

+0

Więc to, co mówisz, to: ** Gotta Catch 'Em All **? –

Odpowiedz

9

Co o coś takiego:

jQuery CSS plugin that returns computed style of element to pseudo clone that element?

Jest brzydki, ale okazało się pracować za plakat ...

To również może Cię zainteresować: https://developer.mozilla.org/en/DOM:window.getComputedStyle

+0

oh wow to jest fugly +1 :) Jest to prawdopodobnie odpowiedź, chyba że ktoś ma sposób, który nie wykonuje iteracji przez wszystkie atrybuty (które wątpię, biorąc pod uwagę dyskusję na temat tego pytania SO). Dziękuję również za grę w GetComputedStyle! – Kyle

15

Zobacz ten live example użyciu selektor atrybutu jQuery

$(document).ready(function() { 
    alert($("#stylediv").attr('style')); 
});​ 
+2

co z tym http://www.jsfiddle.net/twP6S/2? –

+3

@Avinash - A więc? '.css()' również tego nie wybierze: http://www.jsfiddle.net/kGkrX/ ---- I to pytanie próbuje uzyskać wszystkie właściwości CSS, które zostaną zebrane przez '.css() '. --- Uzyskanie wszystkich zastosowanych stylów jest zupełnie innym pytaniem z dużo trudniejszą odpowiedzią (Firebug może to zrobić;)) –

+0

@peter Po prostu próbuję powiedzieć, że po prostu nie możemy uzyskać wszystkich właściwości css [zadeklarowanych w tag stylu], elementu używającego atrybutu stylu –

5

Nie wiem, jak cross-browser to jedno jest, ale działa w Chrome -

https://gist.github.com/carymrobbins/223de0b98504ac9bd654

var getCss = function(el) { 
    var style = window.getComputedStyle(el); 
    return Object.keys(style).reduce(function(acc, k) { 
     var name = style[k], 
      value = style.getPropertyValue(name); 
     if (value !== null) { 
      acc[name] = value; 
     } 
     return acc; 
    }, {}); 
}; 
0

window.getComputedStyle (element);

// For example 
var element = document.getElementById('header'); 
window.getComputedStyle(element);