Felix Riesterer: html-Elemente mit Werten belegen (Fantasieattribute)

Beitrag lesen

Lieber *Alex*,

if(document.getElementById(nummer).wert=="auswählen")

{
        document.getElementById(nummer).style.backgroundColor = "#00ff00";
        document.getElementById(nummer).wert = "abwählen";
}
else
{
        document.getElementById(nummer).style.backgroundColor = "#004f00";
        document.getElementById(nummer).wert = "auswählen";
}

  
in meinem Scripts versuche ich immer "abstrakte" Objekte zu definieren, denen ich eine Eigenschaft "element" verpasse, die eine Referenz auf das eigentliche HTML-Element enthält. Diesen Objekten kann ich dann jede beliebige zusätzliche Eigenschaft verpassen, ohne dass ich am DOM oder dem HTML-Element selbst irgendetwas verändern müsste.  
  
[test.html]  
~~~html
<html>  
    <head>  
        <title>Test</title>  
    </head>  
    <body>  
        <h1>Test</h1>  
        <p id="test1">Hier steht dann <a href="./weiter.html">weiteres zum Nachlesen</a>. Viel Spaß.</p>  
        <script type="text/javascript">
~~~~~~javascript
]//<![CDATA[  
            function prepareElements (ids) {  
                var i, test;  
                window.myObjs = new Array();  
  
                for (i = 0; i < ids.length; i++) {  
                    test = document.getElementById(ids[i]);  
  
                    if (test) {  
                        myObjs.push({  
                            // Hier wird ein "anonymes" Objekt definiert  
                            eigenschaft1 : "Eigenschaft1",  
                            func1 : function () {  
                                alert("Eigenschaft1: " + this.eigenschaft1);  
                            },  
                            describeElement : function () {  
                                alert("<"+this.element.tagName+">: "+this.element.innerHTML);  
                            },  
                            element : test // hier kommt das HTML-Element ins Spiel  
                        });  
                    }  
                }  
            }  
  
            prepareElements(["eins", "zwei", "test1", "drei"]);  
            // Test  
            window.myObjs[0].func1();  
            window.myObjs[0].describeElement();  
        //]]>
~~~~~~html
</script>  
    </body>  
</html>

Liebe Grüße,

Felix Riesterer.

--
ie:% br:> fl:| va:) ls:[ fo:) rl:| n4:? de:> ss:| ch:? js:) mo:} zu:)