[JS][CSS][HTML] CSS-Eigenschaft zu Beginn in JS auslesen

@Daaron
«Was ist mit der einfachen Regel: Mach es von Anfang an richtig?»

Langsam nenne ich deine Belehrungen hier unverschämt! Was ich wie und vor allem warum auf welche Weise anfange, anfangen kann, anfangen muss sind zum größten Teil betriebliche Interna!

Ich stelle dir und allen eine einfache Frage - aber du hast offenbar keine Lust die Frage zu beantworten sondern willst mir beibringen wie ich ein Problem das du gar nicht kennst, mit eine viel zu großen Rattenschwanz an Kleinigkeiten, lösen soll.

Und was glaubst du wohl warum ich hier etwas frage? weil ich nicht weiß was «von Anfang an» richtig ist!



@Freezedevil
Was die Variable angeht - du hast recht, mea culpa. Das kommt dabei raus wenn man müde und genervt ist und an andere Skripte Denkt bei denen die var natürlich außerhalb eine function() stehen, wie es sein soll.

Googlen muss btw offenbar auch gelernt sein. - allerdings…
Natürlich musst du nach deinem Problem suchen und dafür brauchst du die Antwort ja nicht zu kennen.
Das Problem ist - ist kenne das Problem ja nicht mal! Und ohne Stichwörter findet Google nichts oder eben so viel, dass es aufs Selbe rauskommt.
Bei einer Suche nach "javascript style empty"
…kenne ich ja nun eben genau diese Frage nicht. Ich komme bei meiner Art zu denken nicht drauf (mich) zu fragen dass ein Style (aha) empty (soso) sein könnte. Meine Denke war: CSS setzt etwas fest, dieser JS-Code (nach Google..!) liest das(selbe) aus - aber er tuts nicht. Wer ist Schuld; CSS, JS, dessen Syntax?

Du willst CSS-Eigenschaften auslesen, also gibts du bspw ein "javascript css auslesen"
Hmtja… Nach der Frage würde ich eine CSS-Datei, den Code selbst, auslesen wollen (mitels JS) - nicht aber »die von/per CSS angegeben Eigenschaft [›Eigenschaft‹?]«. Bei meinem Glück kommt was bei dem die 3 Stichwörter wird verteilt sind, ohne Zusammenhang.
Ich habe den Link offen - in der Hektik drübergeschaut hätte ich ihn verworfen weil ich eben keine «CSS Eigenschaften» [Eigenschaften von CSS] sondern «durch CSS gesetzte Eigenschaften von XY» suchte. Ein missgedeuteter Fachterminus durch einen Suchenden und das führt in de Wüste.

<span style="background-color:#f00;">Blub</span>
…fällt leider aus da ich den Style nicht am Objekt der Begierde anbringen kann (darf). Deswegen ja CSS.

HTML-Tags sind etwas was man nie stylen sollte. Man stylt immer nur Klassen.
Dein Wort in Gottes Gehörgang!! Wie ich das hasse wenn p oder a prägestyled werden, global. Das ist hier alles viel zu heterogen.
Wäre halt nur zu fragen wo ich die besagte Klasse unterbringen kann. Innehrhalb eines Tags böte ich an - und da sollte es (glaube ich, hoffe ich) eher gleichgültig sein ob ich SPAN, DIV, INPUT verwende (vom Grundsatz her).

document.getElementById('knopf1').className = 'blub';
Und wieder die alte Leier: kennst man dieses Funktion und die Syntax nicht kommt man nie auf das Was und das Wie.

jQuery • alert( $('#meine-id').css('background-color') );
Wieder mal Böhmische Dörfer. Du findest einfach keinen VHS-Kurs der für Programmieredenken taugt; Hallo Welt! und anderes Optikgemäre, statisch in CSS gegossen, das geht. Aber »wie ändere ich dynamisch-logisch ein Objekt/Element«, da geht die Puste aus.

Es hat einen Grund warum diese Frameworks so verbreitet sind. Denn die nehmen einem sehr viel Arbeit ab.
Ich stehe im Moment an dem Punkt wo erst mal diese Arbeit zu entwerfen ist, dann kommt wie ich sie mir (Faultier von Natur aus) abnehmen lasse.
Das, was mich plagt, muss irgendwie auch von Dritten-ohne-große-Ahnung noch bedienbar sein. Einem Knopf eine Farbe zuzuweisen, per CSS, das geht. Ich muss dann sehen wie ich die Fäden im Hintergrund verknüpfe. Der selbe Farbe-Eintrag anderswo ist nicht ›anzubringen‹.


<blockquote>, <q>, <p>, <h*>, <input type="XY">... die sollen i.d.R. auch ohne Klassen identisch aussehen
Und genau da liegt bei mir die Bombe: ich brauche so was eben au contraire fein, unterschiedlich, einzeln. Ist eben keine duchgeplante Site/Page sondern Maschinencode zu bestimmtem Zweck mit etlichen Macken die ich aufbohren soll.
Noch einfacher gesagt - ich versuche ein altes Aufbohren durch ein neues zu ersetzen.


Ich habe nicht alles gelesen aber wenn du nur die Background-Color beim Mouse-Over austauschen willst warum greifst du dann zu JS?
Das kann auch CSS erledigen....
'm'm. MouseOver ist nur ein beliebiger, willkürlicher Trigger damit JS auf Befehl anläuft.
JS selbst muss bestimmte »Ereignisse« abarbeiten. Deren Folge ist unter anderem die adaptive Zustandsänderung eines (wie auch immer, denke da halt an INPUT, erzugten) Buttons. Farbe ist da ein Teil, eine alt="" mag auch zu ändern sein, enablen/diabeln, visible oder nicht - reichilch Ideen, ohne Syntax.

Alles was zu tun wäre steht logisch wie mechanisch schon länger um (klicksensitive) Grafiken = Buttons zu kontrollieren. Nun sollen die Grafiken (z.B. unterschiedliche Sprachen) weg und einfacher Fließtext (der bisher in den Grafiken steht), schön, bequem einfach, flexibel ›zu‹ so einem Button werden (was mir nicht mal unrecht wäre). Und diesen Gaul gibt es nun aufzuzäumen. Fangen wir an; wo ist beim Pferd vorne?

CN8
 
cumulonimbus8 schrieb:
Langsam nenne ich deine Belehrungen hier unverschämt! Was ich wie und vor allem warum auf welche Weise anfange, anfangen kann, anfangen muss sind zum größten Teil betriebliche Interna!
Wie wäre es, wenn du statt zu meckern endlich mal LERNST? Du hast hier laufend irgend welche Trivial-Probleme, die schlichtweg der Tatsache geschuldet sind, dass hier offensichtlich der Bock zum Gärtner gemacht wird.
Also entweder gibst du das Projekt an jemanden, der es in 10% der Zeit erledigt, oder aber du fängst endlich an, dir das Programmierer-Denken anzueignen.

Das Problem ist - ist kenne das Problem ja nicht mal! Und ohne Stichwörter findet Google nichts oder eben so viel, dass es aufs Selbe rauskommt.
Dein Problem war doch wohl, dass du einen Style per JS auslesen willst, hm? Programmierer lernen als erstes, sich immer schön auf "divide et impera" zu stützen.

Und wieder die alte Leier: kennst man dieses Funktion und die Syntax nicht kommt man nie auf das Was und das Wie.
Du hast hier elementare objektorientierte Syntax, die in der einen oder anderen Form in jeder OO-Sprache vor kommt. Mal heißt es Objekt.Attribut, mal Objekt->Attribut, am Ende ist es Jacke wie Hose.
Der nächste Schritt wäre: Nimm doch endlich anständige Werkzeuge in die Hand. Die Chrome Developer Tools haben in der Konsole ein Auto-Ausfüllen nebst Vorschlagfunktion. Lern die Konsole zu bedienen, dann lösen sich deine Probleme auch.

Wieder mal Böhmische Dörfer. Du findest einfach keinen VHS-Kurs der für Programmieredenken taugt;
Nein, denn das ist eine Berufsausbildung. Entweder man hat sie, ersetzt sie durch Jahre praktischer Erfahrung oder man ist in der Branche halt falsch.
Beschwer dich bei deiner Hochschule, der IHK oder wer auch immer der MEinung war, dir Qualifizierung für deine aktuelle Tätigkeit zu bescheinigen. Diese Person/Institution hat sich offensichtlich komplett vertan.

Das, was mich plagt, muss irgendwie auch von Dritten-ohne-große-Ahnung noch bedienbar sein.
Und was ist da besser, als eines der weltweit gängigen Frameworks zu verwenden? Und außerdem: BEDIENUNG und ENTWICKLUNG sind 2 paar Schuhe. Nur eine erlesene Schar kann ein CMS entwickeln, aber am Ende kann es jeder dressierte Affe bedienen.

Und genau da liegt bei mir die Bombe: ich brauche so was eben au contraire fein, unterschiedlich, einzeln. Ist eben keine duchgeplante Site/Page sondern Maschinencode zu bestimmtem Zweck mit etlichen Macken die ich aufbohren soll.
http://de.selfhtml.org/css/formate/kaskade.htm#spezifitaet
Problem gelöst, wieder was gelernt.

Alles was zu tun wäre steht logisch wie mechanisch schon länger um (klicksensitive) Grafiken = Buttons zu kontrollieren. Nun sollen die Grafiken (z.B. unterschiedliche Sprachen) weg und einfacher Fließtext (der bisher in den Grafiken steht), schön, bequem einfach, flexibel ›zu‹ so einem Button werden
...und dafür braucht es oftmals gar kein JS, sondern reines CSS. Über Borders, Box-Shadows, die Pseudoklassen und -objekte,... kann man so endlos viel cooles Zeug machen.

Also um deine Frage zu beantworten: "Vorn" ist beim Pferd 5.0 (aktuelle Version, sollte verwendet werden) erst einmal ein HTML5-DOCTYPE, gefolgt von einem Torso aus syntaktisch perfekten HTML5. Gehüllt ist das Ganze in ein Fell aus CSS3. Nur die "funktionalen Teile" wie Ohren, Augen, Schweif und Beine bestehen aus JavaScript. Ein Glanzeffekt im Fell ist CSS.
 
Nach dem was ich hier von dir lese, würdest du bei mir den Probetag für eine Ausbildung nicht überstehen.
Denn wenn man Programmierer werden will, muss man auch logisch denken können und Zusammenhänge begreifen.
Und man muss immer wenn man vor einem Problem steht, wissen nach was man am besten sucht.
Nenn es Talent oder Begabung, ist halt nicht jedem gegeben.
Ich könnte wohl nie Schreiner werden, muss ja schon schauen das ich nen Nagel gerade eingeschlagen bekomme :-)

Es ist auch normal, das wenn man einen Codeausschnitt postet, dass den Leuten auch die kleinen Fehler auffallen.
Das ist auch nicht böse gemeint, sondern soll einem helfen es zu lernen und besser zu machen.
Und gerade was Daaron schreibt hat immer Hand und Fuß.
 
Vielleicht würdest auch du bei mir keinen Tag überstehen - wenn ich dir Fragen zu Dingen stellte die du nicht kenntest oder etwas forderte das du nie gelernt hast.
Deswegen tun intelligente Leute etwas Unglaubliches: sie fragen! Schlimm ist es wenn diese intelligente Leuten nicht wissen dass und wonach sie fragen können - weil unintelligente Lehrherren nicht erkennen, helfen und lehren sonder nur belehren.

Und solches Personal durfte ich (wie mir heute klar ist) gewisse 10 Jahre in Kindheit und Jugend immer wieder genießen. Mit dem was ich alles nicht lernen durfte würden nicht Klassen sondern ganze Regierungen sitzen bleiben können.
„In der Schule kommt man nicht dazu das Notwendige zu lernen weil viel zu viel Überflüssiges gelehrt wird!“ Lucius Annaeus Seneca hören. Schlimm wirds wenn man was weiß und eine Detail lernen will aber nicht gelehrt bekommt.


Philosophiemodus aus.


computedStyle hat erst mal geholfen, aber dann kam »Kannste mal gucken, wir haben da ein Problem«. Bis ich damit durch bin (wer hätts gedacht, JS und Buttons, aber andere und ›nur‹ Logik) muss das hier ruhen.

CN8
 
Zuletzt bearbeitet:
cumulonimbus8 schrieb:
Vielleicht würdest auch du bei mir keinen Tag überstehen - wenn ich dir Fragen zu Dingen stellte die du nicht kenntest oder etwas forderte das du nie gelernt hast.
Ich sag meinem Chef dann offen: Das liegt weit außerhalb meines Erfahrungs- und Kompetenzbereiches und er soll den Kram jemand qualifizierterem übergeben bzw. outsourcen. Warum? Weil das für die Firma (und somit für meinen stetigen Gehaltsfluss) sinnvoller ist.

Deswegen tun intelligente Leute etwas Unglaubliches: sie fragen!
Du hast dich nicht sehr intelligent angestellt, wenn dir schon die offensichtlichsten Suchparameter nicht auffallen. Du bist in der Branche falsch, so einfach ist das.

Mit dem was ich alles nicht lernen durfte würden nicht Klassen sondern ganze Regierungen sitzen bleiben können.
Komisch... Ich durfte alles lernen. Tatsächlich war ich meinen Mitschülern immer weit voraus, weil ich aktiv nach Wissen gesucht habe, anstatt nur dämlich meine Zeit auf der Bank abzusitzen.
Das heißt aber auch, dass man sich sehr früh selbständige Wissensvermittlung aneignen muss. Diese Fähigkeit fehlt dir. Ich hör dich hier permanent nur jammern, dass du kein Vorkau-Lehrbuch für deine Spezialfälle bekommst. Selbständiges Lernen muss eben auch erlernt werden, aber das ist eben eine Eigenschaft, die den notwendigen Willen voraussetzt. Weißt du, was dir fehlt? Ein Abitur... Spätestens da lernt man zu Lernen.

computedStyle hat erst mal geholfen...
Und nochmal, weil du es scheinbar weiter oben nicht gerafft hast.
Du kannst computedStyle nicht vertrauen!

Du weißt nicht, ob der Browser deines Users diese Fähigkeit mitbringt. IE8 kann es z.B. nicht, ist aber sehr weit verbreitet und wird von MS noch aktiv supportet.
Wenn du also nicht gerade Dutzende Zeilen Workarounds schreiben willst (was dir nicht gelingen wird, weil die möglichen Fehlerquellen Legion sind), dann nimm verdammt noch eins einfach ein Framework, das dieses Problem für dich löst.
 
Bei einem Programmierer ist es in einer Ausbildung eben nicht so, dass der Meister ständig neben dran sitzt und zuguckt.
Fast alles muss man sich als Programmierer selbst beibringen.

Und da hilft einem eben die Suchmaschine.
Wenn man es nicht einmal hineinkommt die passenden Suchbegriffe einzugeben, dann ist man für den Job nicht geeignet.
 
Fast alles muss man sich als Programmierer selbst beibringen.
Kommt mir bekannt vor. Mache ich seit so etwa 1983 so…

Und da hilft einem eben die Suchmaschine.
Oder auch nicht :heilig:

Wenn man es nicht einmal hineinkommt die passenden Suchbegriffe einzugeben, dann ist man für den Job nicht geeignet.
Was du nicht kennst danach kannst du nicht fragen.
Je vager die Umschreibung desto ungenauer die Antwort… …oder gar falsch - siehe die einleitenden Codeschnipsel, alle brav ergooglet.



Ich sag meinem Chef dann offen: Das liegt weit außerhalb meines Erfahrungs- und Kompetenzbereiches und er soll den Kram jemand qualifizierterem übergeben bzw. outsourcen. Warum? Weil das für die Firma (und somit für meinen stetigen Gehaltsfluss) sinnvoller ist.
Ha! Da kennst du unser Sparschwein schlecht.
Wenns interessiert: Lohndatenkontrolle, VBA, HTML, JS, Hardware, Datenschutzt, Projektentwicklung und Kontrolle, Mail, Netzwerk, Updates, Backup - das alles (›und noch viel mehr‹) geht alles über meinen Schreibtisch. Nun rat mal warum ich nicht mal einen Kollegen dafür habe…

Du hast dich nicht sehr intelligent angestellt, wenn dir schon die offensichtlichsten Suchparameter nicht auffallen. Du bist in der Branche falsch, so einfach ist das.
Du bist hier in der Falschen Branche.
Andere hier haben nachgedacht und mich auf eine Syntaxvariante hingewiesen die Google nicht mal als alternative oder als «im Zusammenhang» lieferte. Der Intelligente Leser machte das quasi nebenbei.

Komisch... Ich durfte alles lernen. Tatsächlich war ich meinen Mitschülern immer weit voraus, weil ich aktiv nach Wissen gesucht habe, anstatt nur dämlich meine Zeit auf der Bank abzusitzen.
Nichts anderes habe ich auch getan.
Gemeint waren Lehrpläne die bei Thema XY fast schon selektiv Dinge weggelassen hatten bei den meine Kinnlade runterging als ich sie später aus Magazinen erfahren habe. Dafür kam zu viel Uninterssantes.

Du kannst computedStyle nicht vertrauen!
So weit abwärtskopatibel kann ich nicht gar nicht gehen wie ich demnach müsste.
Aber bitte, wo ist dein Ersatzcode der mit diesen einfachen Mitteln die gewünschte Information bombensicher liefert?
Wie gesagt, die Logik steht (PAPL) - mir fehlt nur die Syntax.

CN8
 
cumulonimbus8 schrieb:
Kommt mir bekannt vor. Mache ich seit so etwa 1983 so…
Dann muss ich dir hier aber bescheinigen... du machst seit 30 Jahren was falsch. Du solltest den Staffelstab an die jüngere Generation weiterreichen.

Was du nicht kennst danach kannst du nicht fragen.
Sprichst du Englisch? Wenn du jetzt "nein" sagst, dann bist du in der Branche falsch. Die IT ist nun einmal Englisch...
Wenn du jetzt hingegen "ja" sagst, dann frage ich mich ernsthaft, wieso du auf eine Suchanfrage wie "javascript get css" nicht kommst... Gleich der erste Hit ist ein Thread bei Stackoverflow, in dem dein Problem recht offensichtlich tangiert wird und außerdem noch computedStyle angesprochen wird.

Also nochmal: Wo liegt dein Problem? Sollen wir dir jetzt beibringen, wie man die richtigen Fragen stellt? Kann ich machen... Du nennst als erstes die Programmiersprache (offensichtlich JavaScript, nä?) und dann in 2-3 einfachen Worten, wo dein Problem liegt... also z.B. "JavaScript get element width". Diese einfache und vollkommen offensichtliche Frage führt mich, du errätst es schon, zu Stackoverflow, DER ultimativen Ressource für alle Entwickler-Probleme, und zwar in einen Thread namens "How do I retrieve an HTML element's actual width and height?"
Hier muss man einfach auf Google-Logik vertrauen, so wird "get" eben durchaus synonym für "retrieve", "fetch" und ähnliche Variablen verwendet... Jep, so clever ist der Indexer.

Wenns interessiert: Lohndatenkontrolle, VBA, HTML, JS, Hardware, Datenschutzt, Projektentwicklung und Kontrolle, Mail, Netzwerk, Updates, Backup - das alles (›und noch viel mehr‹) geht alles über meinen Schreibtisch.
Und? Ich tanze auch auf 5 Hochzeiten. Ich spiel gelegentlich Pixelschubse, verwalte unsere Server, behebe Probleme mit Maschinen im Büro und ab udn an habe ich sogar mal Zeit, mich auf meine eigentliche Aufgabe zu konzentrieren: Webentwicklung.
Das heißt aber nicht, dass ich meinem Chef nicht die Meinung geige, wenn er wieder mit Quatsch ankommt.

Gemeint waren Lehrpläne die bei Thema XY fast schon selektiv Dinge weggelassen hatten bei den meine Kinnlade runterging als ich sie später aus Magazinen erfahren habe. Dafür kam zu viel Uninterssantes.
Für dich uninteressantes...

Wenn ich all die Dinge aufzählen, die während meiner Schulzeit an mir vorbei gerauscht sind... Was hat mir Ethik je genutzt? Welchen praktischen Nutzen ziehe ich aus der Interpretation der Effi Briest oder des Schimmelreiters? Wozu soll ich den Zauberlehrling oder die Abschiedspassage aus Faust II aufsagen können? Auch Französisch hat mir bis heute keinerlei Dienst erwiesen, außer dass ich mich bei nem Kloputzer in Brüssel bedanken konnte...
Andere wiederum fanden es vollkommen uninteressant, was man so alles mit Eisenoxid und Aluminiumpulver anstellen kann, oder was eigentlich im Lebenszyklus eines Sterns so passiert. Und spätestens wenn es um Primzahlen geht haben die meisten abgeschaltet. Für einen IT'ler hingegen gehen da die Lichter an, schließlich könnte er hier was zum Thema Krypto heraushören.

Aber bitte, wo ist dein Ersatzcode der mit diesen einfachen Mitteln die gewünschte Information bombensicher liefert?
Steht schon auf Seite 1, mit Verweis auf die gängigen Frameworks.

http://mootools.net/docs/core/Element/Element.Style#Element:getStyle
http://api.jquery.com/css/
 
Wie gesagt, die Logik steht (PAPL) - mir fehlt nur die Syntax.
Leider fehlt da ein wenig mehr.
Wichtig ist, das man versteht wie die Sprache (hier Javascript) funktioniert. Dazu sollte man vor allem wissen was das DOM ist.
Dann wird einem auch klar was einem document.getElementById zurückliefert. Nämlich ein Object aus dem DOM, mit diversen Attributen. Dazu zählt dann auch das Attribut style, was ja bei dir undefined, da nicht gesetzt war.

Auch fehlen die Kenntnisse wie man debuggt. Alle Browser bieten dazu brauchbare Werkzeuge.
Meist lassen die sich mit F12 öffnen.

Da gibt es auch eine schöne Konsole. Erstens spart man sich damit die widerlichen alerts, da man Konsolenausgaben machen kann (console.info('blub'); ).
Man kann sich da sogar ganze Elemente ausgeben lassen und sieht was diese für Attribute haben:
console.info( document.getElementById('meinElement')


Langsam nenne ich deine Belehrungen hier unverschämt!
Daaron mag ja arrogant rüberkommen, aber er kann es sich erlauben, da er mit seinen Aussagen Recht hat.
Zudem will er nur helfen. Denn du kannst zwar pfuschen und damit das vorhandene noch schlimmer machen, oder du machst es gleich so richtig wie es nur geht.

Und wenn jeder nur rumpfuscht (hauptsache es funktioniert, egal wie), dann führt das irgendwann dazu, das die Software nicht mehr wartbar und erst recht nicht erweiterbar ist.
Dann muss eine komplette Neuentwicklung her und das wird dann richtig teuer.
 
Zurück
Oben