Grütze .. äh ... Grüße!
Ich erzeuge ein Objekt (hier Link) und befülle es dann dynamisch mit den
Attributen und Werten, die ich gerade benötige.
Die Daten liegen in einem Array und sind folgendermaßen angeordnet:
more_opts = [
{att : 'foo1', val : 'bar1'},
{att : 'foo2', val : 'bar2'},
{att : 'foo3', val : 'bar3'}
];
bisher mache ich das in etwa folgendermaßen:
function nLink(myhref,mytitle,more) {
if (arguments.length < 2) return null;
var dol = document.createElement("A");
dol.href = myhref;
dol.title = mytitle;
if (more != null) {
for (var i = 0; i < more.length; i++) {
dol.setAttribute(more[i].att,more[i].val);
}
}
}
nLink("#","Blabla",more_opts);
Funktioniert einwandfrei, bis auf .. you guessed it .. IE. Dort funktioniert ja
bekanntermaßen setAttribute() nicht Ich möchte aber gerne die zusätzliche (hier
nicht gepostete) Funktion nur für den IE sowie die Abfragen, ob IE oder nicht,
gerne einsparen.
Die richtige Syntax ist ja element.foo = bar, allerdings liegen die Daten im
Array als String vor. Wie bekomme ich nun
element.foo1 = bar1;
element.foo2 = bar2;
...
hin?
Ich probiere hier seit Stunden in vielen Kombinationen und an verschiedensten
Stellen mit und ohne eval, Stringverkettung, zusätzlichen Anführungszeichen und
verschiedenene Klammern herum, aber entweder wirft es einen Fehler (je nach dem was
ich gerade versucht habe) oder die Zuweisung wird entweder nicht übernommen oder
funktioniert nicht.
Ich bin im Moment einfach nicht mehr denkfähig (wer in einer ungedämmten
Dachwohnung wohnt, weiß was ich meine) und ganz kurz davor, die dicht neben mir
liegende Flex ausgiebig an meinem Computer auszuprobieren *grummel*
Aufgrund der vielen Stunden, die ich jetzt schon verzweifelt versuche, das Problem zu
lösen, vermute ich, daß es eine ganz triviale Lösung gibt ;) [passiert mir immer]
Brauche Input {und/oder Kühlung ;)}
Cü
Kai