EightBitWitch: Display='Block' für A-Tag bei IE

Beitrag lesen

Hallo,

document.getElementById('module-lastcomments').getElementsByTagName('ul')[0].getElementsByTagName('li')[3].childNodes[4].style.display='block';

bist du sicher, dass du mit childNodes[4] auch den Knoten erwischt hast, den du eigentlich meinst? Beachte, dass der IE Whitespaces (also z.B. Zeilenumbrüche) als Textknoten mitzählt.

Ja, da bin ich sicher, auch wenn es zwei Tage arbeitet gekostet hat, die anderen 'Denkweise' des IE zu durchschauen, da diese ja auch in sich, nicht immer logisch und einheitlich ist. Ich ziehe beim 'zielen' meistens roten Rahmen (border:1px solid red;)um die 'getroffenen' Elemente, da ich so besser testen kann ob ist das richtige Element getroffen habe.
In diesem Fall ist es so, das die Anzahl den Elemente innerhalb von LI auch noch variieren kann, daher auch der eine IF-Block wo einmal childNodes[4] und einmal childNodes[2] gewählt wird.
Für den Fall, das das Script es nicht mit dem IE zu tun hat, funktioniert einfach lastChild (Siehe Code der Funktion).
Ich hatte gehofft, das das auf dem Code der Funktion hervorgeht. Kann sein, das ich zu wenig kommentiert habe, als das es ein Aussenstehender meine Gedankenzüge verstehen kann.
Ich programmiere sicherlich anderes als die jungen Leute und es ist für diese Leute oft schwer zu verstehen, wie ich an ein Problem heran gehe. Ich habe vor 25 Jahre meine erste Programme in Assembler geschrieben und das hat mich geprägt.

Wenn du also meinst, dass dein ausgewähltes li-Element mehrere Links enthält und du willst einen davon adressieren, dann ist es ratsam, hier _nochmal_ mit getElementsByTagName() durch die a-Elemente zu laufen. Auch wenn das den gesamten Ausdruck noch wuchtiger aussehen lässt.

Hat keine Sinn, zumindest wenn ich alles richt verstanden habe, denn keines der fraglichen Elemente hat ein name-Attribut. Kein name, kein class und nur ein ID am Anfang - deswegen auch der ganze Aufwand eines Facelifing per JavaScript.

In der hier gezeigten Funktion, habe ich das für den IE vorübergehend  anders gelöst: ich füge mit insertBefore ein BR vor dem betreffenden A-Tag ein.

Immerhin ein praxistauglicher Workaround. ;-)

Danke!

Im msdn (http://msdn2.microsoft.com/en-us/library/ms530751.aspx) habe ich nun gelesen, ...

Um Himmels Willen, was ist denn das für eine kaputte Seite! Die Elemente überlappen sich teilweise, und um zu scrollen, muss ich den Text auf der Seite mit der Maus markieren - einen Scrollbalken gibt's nämlich nicht. Dass ausgerechnet die Microsoft-Seiten nicht einmal im IE anständig dargestellt werden, ist schon erstaunlich.

Nein, das hast du falsch verstanden. Die Liste, die dort aufgeführt ist, beinhaltet Elemente für die die Eigenschaft a) nur lesbar ist und b) nicht die Vorgabe inline besitzt.

Auch das ist nicht ganz richtig. Da steht erstens, dass die display-Eigenschaft bei allen Objekten außer currentStyle lesbar und schreibbar ist. Darunter steht außerdem eine Liste von HTML-Elementen, bei denen der Defaultwert für display NICHT "inline" ist. Das a-Element ist in der Liste nicht aufgeführt, also IST dessen Defaultwert "inline".

Das habe ich jetzt nicht verstanden.
Die Eigenschaft DISPLAY ist bei dem A-Tag nur lesbar?

Nein, das sit ein Missverständnis.

ok, verstanden.

Englische Dokumente stellen für mich derzeit auch noch eine gewisse Hürde dar.

Dann solltest du an deinen Englischkenntnissen und -fertigkeiten arbeiten. Auch wenn ein großer Teil der Spezifikationen und Informationen in Deutsch verfügbar ist, so ist Englisch doch _DIE_ Fachsprache der Branche, und die meisten IT-Dokumente werden in Englisch verfasst. Die deutschen Übersetzungen sind oft unvollständig, veraltet, oder falsch übersetzt.
Ich persönlich bevorzuge immer die englische Fassung.

Mal sehen. Ich bin kein Teil der Branche mehr und vor zwanzig Jahren, als ich mitten in dieser Branche stecke, ging das alle noch gut mit 'probieren geht über studieren' (auch bei Novell Netware 2.15 und Co *Achtung: Museumsware*) - ok, diese Zeiten sind vorbei. Ich bin inzwischen berentet und ich verdiene nicht mein Geld mit der Sache, ist eher ein ambitioniertes Hobby von mir. Habe einfach Spaß dran.
Ich probiere halt viel rum, lerne dabei viel, nur manchmal komme ich nicht mehr weiter und 'lande' dann hier.
Die verständliche Formulierung der Problem, die sich hin und wieder ergeben, fällt mir ehrlich gesagt schon recht schwer, da ich eben mehr in Bilder und Bildsequenzen denke und mir die ganze Materie noch nichtt zu geläufig ist. Ok, dafür könnte ich etwas zu 6502 und Z80-Assembler referieren - kein Angst, das erspare ich euch ;-)
Ich komme eben aus einer anderen Zeit, als vermutlich viele derjenigen, die sich heute ernsthaft mit der Erstellung von Web-Angeboten beschäftigt.

Zum Ende der besagten Seite hin finden sich Beispiele, hast du die schon ausprobiert?
Sorry, aber die sind für mein Problem nicht wirklich hilfreich.

Das würde ich auch so sehen.

So long,
Martin

Oh man, das hat wieder Kraft gekostet ...

PS.

Viele was ich hier geschrieben habe, ist sicherlich Off-Topic und wen das stört, der mag das mir das bitte verzeihen und überlesen, aber: Ich wollte mal herausstellen, das es auch noch ganz andere Programmier-Charaktere gibt, als die jungen Wilden von heute auf die ich immer wieder treffe und die eine ganz andere Herangehensweise haben als die Leute meiner Generation. Letztens habe ich einen 77 Jahren alten Herren interviewt, der in den 60er Jahren an einem Zuse-Rechner und an meiner LGP-21 (http://virtualhistoricfair.blog.de/2007/06/03/es_geht_endlich_los_librascope_general_p~2377381) gearbeitet und dafür Programme geschrieben hat. Das war dann auch für mich eine völlig andere Welt und Denkweise bezüglich der Programmerstellung.