Nati: DHTML - Font Attribute

Warum funktioniert das nicht??

Es bringt zwar kein Fehler, aber der Text sollte eigentlich blau sein und fett, allerdings ist er mager und schwarz :(

Was hab ich denn da falsch gemacht??

Das Ganze steht in einer Tabelle mit der Spalte td2.

Der Code:
var font2 = document.createElement("font");
var fontcolor2 = document.createAttribute("color");
fontcolor2.nodeValue = "#336699";
var text2 = document.createTextNode("Kontierungsobjekt");
td2.appendChild(text2);
font2.setAttributeNode(fontcolor2)
td2.appendChild(font2);
var b = document.createElement("b");
td2.appendChild(b);

  1. Hi,

    Es bringt zwar kein Fehler, aber der Text sollte eigentlich blau sein und fett, allerdings ist er mager und schwarz :(

    Du musst einen mallorcanischen Browser verwenden, keinen äthiopischen. Äh ... argl.

    Was hab ich denn da falsch gemacht??

    Schau Dir mit einem Mozilla mal den generierten Code an, dann kommst Du von alleine drauf. Wieso verwendest Du eigentlich noch <font>? Die Jahrtausendwende ist ein Weilchen her.

    Cheatah

    --
    X-Self-Code: sh:( fo:} ch:~ rl:° br:> n4:& ie:% mo:) va:) de:] zu:) fl:{ ss:) ls:~ js:|
    X-Self-Code-Url: http://emmanuel.dammerer.at/selfcode.html
    X-Will-Answer-Email: No
    X-Please-Search-Archive-First: Absolutely Yes
  2. Tag Nati.

    Es bringt zwar kein Fehler, aber der Text sollte eigentlich blau sein und fett, allerdings ist er mager und schwarz :(
    Der Code:
    var font2 = document.createElement("font");
    var fontcolor2 = document.createAttribute("color");
    fontcolor2.nodeValue = "#336699";
    var text2 = document.createTextNode("Kontierungsobjekt");
    td2.appendChild(text2);
    font2.setAttributeNode(fontcolor2)
    td2.appendChild(font2);
    var b = document.createElement("b");
    td2.appendChild(b);

    Das ergibt:
    <td>Kontierungsobjekt<font color="#336699"></font><b></b></td>

    Du willst (vermutlich)
    <td><font color="#336699"><b>Kontierungsobjekt</b></font></td>

    Das wäre z.B. so lösbar:
    <td class="fett_bunt">Kontierungsobjekt</td>
    .fett_bunt { font-weight:bold;color:#369; }

    Klassennamen weist du über die Universaleigenschaft className zu. So, nun noch mal von vorn :-)

    Siechfred

  3. Der Code:
    var font2 = document.createElement("font");

    <font> ist seit einigen HTML Versionen unerwünscht?
    Wenn du einen inline Container brauchst nimm <span>, falls der Inhalt des Tags eine sematische Bedeutung hat nimm ein geeigneteres HTML Element.

    var fontcolor2 = document.createAttribute("color");

    Du könntest hier genauso gut createAttribute("bla"); schreiben, nur weil du sagst color wird das der Browser nicht befolgen, es sei denn das erzeugte Element hat ein attribut, das dies tut, dann musst du aber kein Attribut kreiren.

    Im Klartext, jedes HTML Element hat ein style Objekt, d.h. wenn du die mit createElement erzeugst ist es bereits vorhanden und läßt sich benutzen.

    var font2 = document.createElement("span");
    font.style.color = "#336699";

    ...

    var text2 = document.createTextNode("Kontierungsobjekt");
    td2.appendChild(text2);

    Wo kommt td2 her?
    Hast du geprüft ob es einen Wert hat?
    und vor allem solltest du hier nicht den Textknoten einfügen, sondern das neue Element, der Textknoten sollte stattdessen in das Element:

    var font2 = document.createElement("span");
    font2.style.color = "#336699";

    var text2 = document.createTextNode("Kontierungsobjekt");
    font2.appenChild(text2);
    td2.appendChild(font2);

    Struppi.