2012-04-02 30 views
1

Ich habe eine Seite mit Elementen, mit relativer Position.Überprüfen, ob die Position existiert

style="position: relative;" 

Einige haben oben/links Koordinaten und andere nicht. Gibt es eine Möglichkeit zu überprüfen, ob die Koordinaten innerhalb des Style-Tags mit jQuery existieren?

Wenn nicht, ich möchte sie hinzufügen, indem Sie wie etwas zu tun:

if (...) { 
    var myDiv = $(".myDiv");  
    var pos = myDiv.position(); 
    myDiv.css({ "left:" + pos.left + "px", "top:" + pos.top + "px" }); 
} 

Antwort

3

Wie this jsfiddle der Standardwert von oben gezeigt,/links ist "auto ". Um zu überprüfen, ob der CSS-Wert gesetzt ist oder nicht, können Sie überprüfen, ob der Wert "auto" ist oder nicht.


Der Test:

<div style="position: relative;"></div> 

<div style="position: relative; left: 10px;"></div> 

<div style="position: relative; left: badvalue;"></div> 

<script type="text/javascript"> 
    $(function() { 
     $('div').each(function() { 
      alert($(this).css('left')); 
     }); 
    }); 
</script> 
+0

Cool! Also kann ich so etwas tun: if (myDiv.css ('left') == 'auto') { \t \t var pos = myDiv.position(); \t \t myDiv.css ({"links:" + pos.left + "px", "oben:" + pos.top + "px"}); \t} – santa

+0

Sie sollten die Dokumentation zu [jQuery CSS] (http://api.jquery.com/css/) lesen, da der Code in Ihrem obigen Kommentar nicht korrekt ist. Aber ansonsten, ja, ich verstehe nicht warum nicht :-) – Hubro

3

Sie die css Methode verwenden können:

var hasTop = $('#element').css('top') !== 'auto'; 
var hasLeft = $('#element').css('left') !== 'auto'; 

Der Standardwert für top und left ist auto, Wenn also die Methode css nicht zurückgibt, wissen Sie, dass die Stilattribute anderswo festgelegt wurden.

2

Sie können einfach wie unten für jene Stildeklaration überprüfen,

DEMO

HTML:

<span style="position: relative;"></span> 
<span style="position: relative; top: 100px; "></span> 
<span style="position: relative;"></span> 
<span style="position: relative; left: 10px;"></span> 
<span style="position: relative;"></span> 

JS

$('span').each (function() { 
    alert(this.style.left != '' || this.style.top != ''); 
}); 
Verwandte Themen