2011-07-14 12 views

Odpowiedz

6

Metody DOM takie jak document.getElementById() tworzą obiekty, które wskazują i zawierają pewne szczegóły dotyczące określonego wiersza HTMLE lub zestawu elementów.

Niestety, właściwość .style zna tylko właściwości stylu ustawione przy użyciu tej samej funkcji. W poniższym przykładzie kliknięcie przycisku what color? nie będzie działać, dopóki nie klikniesz przycisku change color.

<html> 
<head> 
<script> 
function whatColor() { 
    var d = document.getElementById('ddd'); 
    alert(d.style.backgroundColor); 
} 
function changeColor() { 
    var d = document.getElementById('ddd'); 
    d.style.backgroundColor='orange'; 
} 
</script> 
<style> 
#ddd { 
    background-color:gray; 
} 
</style> 
</head> 
<body> 
<input type="button" onclick="whatColor();" value="what color?" /> 
<input type="button" onclick="changeColor();" value="change color" /> 
<div id="ddd">&nbsp;</div> 
</body> 
</html> 

Radzę przeczytać wielką strony PKK na getComputedStyle i currentStyle (czyli oczywiście różni) http://www.quirksmode.org/dom/getstyles.html

Na końcu poradnika znajduje się bardzo przyzwoity funkcja do swoich celów, chociaż ram takich jQuery zapewnia bardzo wygodne funkcje do stylizowania elementów strony:

+0

Dzięki za wyjaśnienie, że styl .style wie tylko o tych ustawionych. Myślę, że to jquery było tym, czego szukałem. – ShrimpCrackers

1

Wyświetla wartość, która została ustawiona dynamicznie. jeśli chcesz znaleźć aktualną wartość, potrzebujesz obliczonej wartości. to samo pytanie zadano, sprawdź moją odpowiedź tutaj

Stackoverflow

+0

Jeśli styl jest podany w zewnętrznym arkuszu stylów, czy nie zastępuje on wartości domyślnej? Zdefiniowałem wyświetlanie w zewnętrznym arkuszu CSS dla elementu, który przekazuję, ale jest wyświetlane jako niezdefiniowane. – ShrimpCrackers

+0

co mam na myśli, to będzie czytać właściwość, która jest ustawiona z javascsript. aby uzyskać zestaw wartości z arkusza stylów, potrzebna jest obliczona wartość – Ibu

0

Twój fragment pokaże tylko wartość style.display jeżeli zostały faktycznie ustawić, to nie koniecznie pokazać wartości domyślnych.

1

W rzeczywistości jest to możliwe przy użyciu window.getComputedStyle(element[, pseudoElt]).

Metoda podaje wartości wszystkich właściwości CSS elementu po zastosowaniu aktywnych arkuszy stylów i rozwiązywania podstawowych obliczeń, które te wartości mogą zawierać.

Powiązane problemy