Auslesen der Position eines HTML-Objektes
Marcus
- javascript
Hallo liebe Runde,
ich steh gerade etwas auf dem Schlauch.
Kann mir jemand auf die Sprünge helfen, warum ich im unten stehenden Beispiel keinen Wert für die Variable auslesen kann?
Vielen Dank für jeden Tipp!
Herzliche Grüße
Marcus
<html>
<head>
<meta http-equiv="content-type" content="text/html;charset=iso-8859-1">
<title></title>
<script type="text/javascript">
<!--
var theTDxPos;
function Init()
{
theTDxPos = document.getElementById("TEST").style.left;
alert(theTDxPos);
}
//-->
</script>
</head>
<body onLoad="Init()">
<div id="TEST">TEST</div>
</body>
</html>
Hi Marcus,
probiers mal so:
function Init()
{
document.getElementById("TEST").style.left = '100px';
theTDxPos = document.getElementById("TEST").style.left;
alert(theTDxPos);
}
Gruß vom Tom
Hi Tom,
vielen Dank, aber das Ganze ist nur ein Testaufbau:
Ich möchte letztendlich die Position einer TD in einer Tabelle ermitteln, deren Zeilenanzahl ich nicht kenne;
Der ich also auch keine Position zuweisen kann, oder?
Danke & Gruss
Marcus
Hi Marcus,
damit hab ich auch schon mal gekämpft und bin dabei zu der Überzeugung gelangt, daß sowas deswegen nicht geht, weil dieser Eigenschaft des Objektes kein Wert zugewiesen wurde und sie deshalb schlicht und ergreifend leer ist.
Wüßte auch gerne ne Möglichkeit, so ne Position zu ermitteln.
Denke mal, es wird nicht gehen, weil ich mich da nicht mehr im DOM bewege sondern in der Browserprogrammierung.
Wäre schön, wenn mich jemand eines Besseren belehren könnte und es doch eine Möglichkeit gibt.
gruß
ptr
hi,
Kann mir jemand auf die Sprünge helfen, warum ich im unten stehenden Beispiel keinen Wert für die Variable auslesen kann?
theTDxPos = document.getElementById("TEST").style.left;
wie schon gesagt wurde, geht das so nicht, da fuer die css-eigenschaft gar kein werrt explizit gesetzt wurde (AFAIK kannst du werte von css-eigenschaften sogar nur dann auslesen, wenn sie per html-attribut style="..." im element selbst gesetzt wurden).
du kannst stattdessen versuchen, mit offsetLeft & co. zu arbeiten, http://selfhtml.teamone.de/javascript/objekte/all.htm#offset_left. im IE liegt dies unterhalb von document.all, aber so weit ich weiss verstehen das auch andere, DOM-faehige browser wie der mozilla, wenn du es mit
document.getElementById("elementid").style.offsetLeft
ansprichst.
gruss,
wahsaga
hi,
du kannst stattdessen versuchen, mit offsetLeft & co. zu arbeiten, http://selfhtml.teamone.de/javascript/objekte/all.htm#offset_left. im IE liegt dies unterhalb von document.all, aber so weit ich weiss verstehen das auch andere, DOM-faehige browser wie der mozilla, wenn du es mit
document.getElementById("elementid").style.offsetLeft
ansprichst.gruss,
wahsaga
Habs im IE mal ausprobiert, da hats tatsächlich funktioniert, allerdings mit:
document.getElementById("elementid").offsetLeft;
document.getElementById("elementid").style.offsetLeft;
hat mir undefined zurückgebracht.
thanx und gruß an wahsaga von ptr
Hallo Ihr Beiden,
hab´s auch getestet, "offsetLeft" und "left" zählen leider anders...aber es kann ja nicht immer Sonntag sein! :)
Danke & Viele Grüße!
Marcus
hi,
hab´s auch getestet, "offsetLeft" und "left" zählen leider anders...
hast du diesbezueglich den hinweis auf der von mir verlinkten selfhtml-seite beachtet,
"Speichert den Abstand eines Elementes zum linken Rand des in der Eigenschaft offsetParent gespeicherten Offset-Elternelementes."
du musst also fuer das/die elternelemente zuerst auf die gleiche weise dessen/deren position ermitteln, und dann die werte addieren, um die position eines kindelementes heraus zu bekommen.
gruss,
wahsaga