Toon posts:

[JS] Strings in functies gebruiken

Pagina: 1
Acties:

Verwijderd

Topicstarter
Ik heb dus een functie die 2 variabelen vraagt. Wat ik dus wil bereiken is het volgende:

document.body.style.var1 = var2

bijvoorbeeld. Dan vult ie dus in voor var1 bijvoorbeeld color en var2 is dan die kleur. Maar de variabelen worden gegeven in strings, en gewoon de bovenstaande regel geburiken werkt niet. Volgens mij is er een bepaalde Method voor, maar ik zou niet weten waar ik op moet zoeken.

  • creative8500
  • Registratie: September 2001
  • Laatst online: 03-01 16:54

creative8500

freedom.

Ik denk dat je beter een switch-statement kunt gebruiken, bij een dergelijke functie. Zo voorkom je foutmeldingen bij een niet-bestaande invoer van var1.

Verwijderd

Topicstarter
Hmm, ja, maar het is zo dat de waardes door mij en niet door de client gegeven worden.. Ik maak hopelijk geen fouten bij het invoeren van mijn variabelen :7

Dit is een oplossing maar wel een kb-intesive :/

  • crisp
  • Registratie: Februari 2000
  • Nu online

crisp

Devver

Pixelated

in javascript kan je alle properties ook op een array-like manier benaderen:

JavaScript:
1
document.body.style[var1] = var2;


:)

voordat er iemand eval() begint te roepen... ;)

[ Voor 19% gewijzigd door crisp op 20-11-2003 12:39 ]

Intentionally left blank


  • coubertin119
  • Registratie: Augustus 2002
  • Laatst online: 20-08 15:43
Verwijderd schreef op 20 november 2003 @ 12:15:
Hmm, ja, maar het is zo dat de waardes door mij en niet door de client gegeven worden.. Ik maak hopelijk geen fouten bij het invoeren van mijn variabelen :7

Dit is een oplossing maar wel een kb-intesive :/
lichtelijk offtopic, maar wat is er zo kb-intensive aan een switch statement? Op het feit na dat dit ook niet de juiste oplossing is voor je probleem. crisp's systeem is perfect voor dit :).

Skat! Skat! Skat!


Verwijderd

Topicstarter
coubertin119 schreef op 20 november 2003 @ 12:51:
[...]
lichtelijk offtopic, maar wat is er zo kb-intensive aan een switch statement? Op het feit na dat dit ook niet de juiste oplossing is voor je probleem. crisp's systeem is perfect voor dit :).
Tjah, het zal dan wel niet echt intensive zijn, maar ik bedoel idd dat het makkelijker kan :)

Maar uhm... Ik heb dus dat van crisp toegepast:
code:
1
2
3
function changeCol(nCol,obj0,obj1) {
document[obj0].style[obj1] = nCol
}


En de volgende selects:

code:
1
2
3
4
5
6
7
8
9
10
<select onChange="changeCol(this.value,'body','color')">
<option value="#FFFFFF">White</option>
<option value="#000000" selected>Black</option>
<option value="#B8B8B8">Grey</option>
</select>
<select onChange="changeCol(this.value,'body','background-color')">
<option value="#FFFFFF" selected>White</option>
<option value="#000000">Black</option>
<option value="#B8B8B8">Grey</option>
</select>


De color werkt wel, maar background-color (ook bgColor gedaan) wil niet werken... Huh :?

  • BtM909
  • Registratie: Juni 2000
  • Niet online

BtM909

Watch out Guys...

backgroundColor will do the trick

[ Voor 38% gewijzigd door BtM909 op 20-11-2003 13:04 ]

Ace of Base vs Charli XCX - All That She Boom Claps (RMT) | Clean Bandit vs Galantis - I'd Rather Be You (RMT)
You've moved up on my notch-list. You have 1 notch
I have a black belt in Kung Flu.


  • Skaah
  • Registratie: Juni 2001
  • Niet online
BtM909 schreef op 20 november 2003 @ 13:03:
backgroundColor will do the trick
Je mag geen minnetje gebruiken:
JavaScript:
1
document.el.style.background = 'red';

[ Voor 4% gewijzigd door Skaah op 20-11-2003 13:05 ]


  • creative8500
  • Registratie: September 2001
  • Laatst online: 03-01 16:54

creative8500

freedom.

Ik heb het script niet getest, maar allereerst:

• gebruik 'backgroundColor' i.p.v. 'bgColor'.
• gebruik 'onchange' (XHTML is case-sensitive).
• voordat je 'this.value' invoert, probeer eerst 'alert (this.value)'.

Verwijderd

Topicstarter
creative8500 schreef op 20 november 2003 @ 13:05:
Ik heb het script niet getest, maar allereerst:

• gebruik 'backgroundColor' i.p.v. 'bgColor'.
• gebruik 'onchange' (XHTML is case-sensitive).
• voordat je 'this.value' invoert, probeer eerst 'alert (this.value)'.
K, werkt nu, het ging eigenlijk alleen maar om de background definitie :7 Handig dat overal iets anders wordt gebruikt :D
Pagina: 1