Danfix: Typecasting-Problem?

Hallö!

Folgendes Problem:

Das funktioniert wurderbar....

document.getElementById("K_indent_R_075").firstChild.style.setAttribute("color","#ff0000",false);

und das nicht....

inp_value = "K_indent_R_" + inp_value;
alert(inp_value); <-- Ausgabe "K_indent_R_075"
document.getElementById(inp_value).firstChild.style.setAttribute("color","#ff0000",false);

Das sieht ja wohl nach irgendeinem Typecasting-Problem aus...aber wie umgehe ich das? Versuche mit String(...) oder &quot; liefen auch schon ins Leere!

Für Hilfe wäre ich dankbar!

  1. Hallo,

    Das funktioniert wurderbar....

    document.getElementById("K_indent_R_075").firstChild.style.setAttribute("color","#ff0000",false);

    Warum immer so kompliziert?

    document.getElementById("K_indent_R_075").firstChild.style.color = "#ff0000";

    und das nicht....

    inp_value = "K_indent_R_" + inp_value;
    alert(inp_value); <-- Ausgabe "K_indent_R_075"
    document.getElementById(inp_value).firstChild.style.setAttribute("color","#ff0000",false);

    Doch das muss gehen. Wenn nicht, ist da noch irgendwas drumrum, was dies verhindert. Kannst Du eine komplette, aufs Problem reduzierte Testseite zeigen?

    Das sieht ja wohl nach irgendeinem Typecasting-Problem aus

    Nein, nach

    inp_value = "K_indent_R_" + inp_value;

    ist inp_value definitiv ein String und HTMLDocument.getElementById erwartet als Parameter auch einen.

    viele Grüße

    Axel

  2. Hallo,

    Das funktioniert wurderbar....

    document.getElementById("K_indent_R_075").firstChild.style.setAttribute("color","#ff0000",false);

    Das sehe ich erst jetzt. Das kann eigentlich nicht funktionieren.

    document.getElementById("K_indent_R_075").firstChild.style ergibt ein CSSStyleDeclaration. Das hat keine Methode setAttribute. Warum der IE das trotzdem macht, weiß ich nicht.

    Richitg wäre

    document.getElementById("K_indent_R_075").firstChild.style.setProperty("color","#ff0000","important");

    oder

    document.getElementById("K_indent_R_075").firstChild.style.setProperty("color","#ff0000","");

    Das kann aber IE nicht, also:

    document.getElementById("K_indent_R_075").firstChild.style.color = "#ff0000";

    Das können alle aktuellen grafischen Web-Browser.

    viele Grüße

    Axel

    1. Hallo,

      document.getElementById("K_indent_R_075").firstChild.style.setAttribute("color","#ff0000",false);
      Das sehe ich erst jetzt. Das kann eigentlich nicht funktionieren.
      Warum der IE das trotzdem macht, weiß ich nicht.

      Jetzt weiß ich es.

      viele Grüße

      Axel