2011-01-07 10 views
2

Ich versuche, eine CSS-Eigenschaft, die mit jQuery dynamisch festgelegt wurde.jquery css bekommen dynamisch festgelegten Eigenschaften

diesen Code vor:

$(document).ready(function(){ 

$("#clickme").click(function(){ 

    $("#myTable").css('borderStyle','solid'); 
    $("#myTable").css('borderColor','black'); 
    $("#myTable").css('borderWidth','3px'); 
}); 

$("#clickme2").click(function(){ 
    alert($("#myTable").css('borderWidth')); 
}); 

}); 

Ein Klick auf ClickMe-Taste wird die Tabelle myTable mit den erwarteten Eigenschaften (3px solid black) gesetzt, aber dann auf clickme2 klicken, wird der 3px Wert nicht erhalten! Kennen Sie irgendeine Reparatur?

Ich lese hier Can jQuery get all CSS styles associated with an element?

, dass eine Lösung, die die .style des DOM-Elements verwendet werden könnte, aber wenn jquery es tun könnte, würde ich den Jquery Weg bevorzugen ...

(die wysiwig for stackoverflow ist eine sehr gute Idee;))

+0

Beachten Sie, dass Ihr Code verbessert/vereinfacht werden kann als '$ ('# myTable'). Css ({borderStyle: 'solid', borderColor: 'schwarz', borderWidth: '3px'});' – Phrogz

+0

Was passiert wann klick auf clickme2? – Jake

Antwort

2

Mein Verständnis ist, wenn Sie einen Wert mit "borderWidth" setzen, ist es eine Kurzform der Einstellung "BorderTopWidth", "BorderRightWidth", "BorderBottomWidth" und "BorderLeftWidth" alle auf einmal.

Daher denke ich, dass Sie angeben müssen, welche Seite des Rahmens Sie erhalten möchten, z. B. "borderBottomWidth".

0

Es gibt keine tatsächlichen Wert borderWidth oder border-width es eine CSS-Kurzschrift-Eigenschaft ist es, die vier zugrunde liegenden Eigenschaften border-top-width, setzen border-right-width usw.

So können Sie nur Abfrage für einen dieser vier Werte:

DEMO:

+0

ok, danke, dann habe ich für die Rahmenbreite Alarm gefunden ($ ("# myTable"). Get (0) .style.borderWidth); nützlich – ling

+0

Yer das ist gut, verwenden Sie das. –

Verwandte Themen