peterS.: Dynamische Objektnamen ohne eval ?

Beitrag lesen

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>

<head>
    <title>accumulateNodeProperties()</title>
    <script type="text/javascript">
    <!--

function accumulateNodeProperties(nodeObject,arrayObject) {
        //  alert(arrayObject)
        //  alert(typeof(nodeObject));
            var stringValue = "";
            if (nodeObject && (typeof(nodeObject) == "object")) {
                if (arrayObject.constructor == Array) {
                    for (var i=0;i<arrayObject.length;i++) {
                        stringValue = arrayObject[i].toString();
                        if ((nodeObject[stringValue] !== null) && (nodeObject[stringValue] != undefined)) {
                        //  alert("nodeObject = nodeObject[" + arrayObject[i].toString() + "]");
                            nodeObject = nodeObject[arrayObject[i].toString()];
                        } else {
                        //  alert("break");
                            break;
                        }
                    }
                }
                return nodeObject;
            } else {
            //  return undefined;
                return null;
            }
        }

var info = [];
        info[0] = [];
        info[0][0] = "excerpt";
        info[0][1] = "style.color";
    //  info[0][1] = "style.top";

function runTestCase() {
        //  var propertyValue = accumulateNodeProperties(document.getElementById(info[0][0]),info[0][1].split("."));
            alert("accumulateNodeProperties(document.getElementById("" + info[0][0] + "","" + info[0][1] + "") = " + accumulateNodeProperties(document.getElementById(info[0][0]),info[0][1].split(".")));
            alert(document.getElementById(info[0][0]).style.color);
        //  alert(document.getElementById(info[0][0]).style.top);
        }

//  getestet unter windows mozilla 1.0, msie 5.0;
    //  nn4.x ist mit diesem beispiel nicht zu testen;
    //
    //  viel spass und by(t)e by(t)e - peterS. - pseliger@gmx.net
    //
    //-->
    </script>
</head>

<body onload="runTestCase()">
    <div>
        <br /><br />
        Testcase
        <br /><br />
    </div>
    <div id="excerpt" name="excerpt" style="color:#000000;">
        » Hallo,<br />
        » <br />
        » danke, aber deine Vorgehensweise funktioniert leider nicht bei meinem Problem.<br />
        » Mit einer einzigen Variable, habe ich es auch ohne eval hinbekommen. Das Problem<br />
        » liegt ja darin, das "style.top" auch aus einer Variable kommen soll, damit so auch<br />
        » andere CSS-Eigenschaften angesprochen werden können.<br />
        » <br />
        » Und<br />
        » <br />
        » info[0][0] = "nameDiv";<br />
        » info[0][1] = "style.top";<br />
        » <br />
        » var obj  = document.getElementById(info[0][0]).info[0][1];<br />
        » obj = "30px";<br />
        » <br />
        » funktioniert genausowenig wie<br />
        » <br />
        » var obj  = document.getElementById(info[0][0]);<br />
        » obj.info[0][1] = "30px";<br />
        » <br />
        » Vielleicht mache ich ja bei der Notation etwas falsch.<br />
        » <br />
        » Gruss<br />
        » CC<br />
    </div>
</body>

</html>

--
sh:| fo:) ch:? rl:| br:& n3:} n4:# ie:| mo:{ va:| de:[ zu:] fl:) ss:) ls:& js:)