JS set Value
Dylan -
14/07/2013 11:58:43Hoi,
Ik ben bezig met een script dat een random naam moet verzinnen met javascript.
Momenteel is dit mijn script:
<script>
function setUsername() {
var number = Math.random() * Math.random() * 64;
var set = document.getElementsByTagName('param');
set.username.value = "Player" + number;
}
</script>
En dat script zou de value van username moeten invullen:
<param name="username" value="">
Alleen werkt dat niet.
Zo roep ik de functie aan:
<body onload="setUsername()">
Hopelijk weet u de oplossing
Ik ben bezig met een script dat een random naam moet verzinnen met javascript.
Momenteel is dit mijn script:
<script>
function setUsername() {
var number = Math.random() * Math.random() * 64;
var set = document.getElementsByTagName('param');
set.username.value = "Player" + number;
}
</script>
En dat script zou de value van username moeten invullen:
<param name="username" value="">
Alleen werkt dat niet.
Zo roep ik de functie aan:
<body onload="setUsername()">
Hopelijk weet u de oplossing
PHP hulp
21/11/2024 18:48:55Frank Nietbelangrijk
14/07/2013 12:11:22hallo,
getElementsByTagName geeft een array terug. een array is een lijst, in dit geval een lijst van elementen.
alleen getElementById() geeft direct een element terug.
getElementsByTagName geeft een array terug. een array is een lijst, in dit geval een lijst van elementen.
alleen getElementById() geeft direct een element terug.
Wouter J
14/07/2013 12:36:55[nerdmode]getElementsByTagName geeft een live ElementCollection of NodeList terug[/nerdmode]
Naast dat de functie dus een traversable terug geeft en je die dus eerst door een for of forEach loop moet halen voordat het werkt wil ik je ook al vast 4 tips meegeven:
- param is hier niet voor gemaakt en moet je hier ook niet voor gebruiken, gebruik bijv. <input>
- haal elementen niet op in een functie. Dit zorgt ervoor dat je elke keer als je die functie aanroept JS de hele DOM laat doorzoeken naar die elementen. Haal alle nodige elementen op in de global scope en gebruik die in de functie (en maak misschien zelfs gebruik van een global scope)
- Gebruik geen inline JS (onload=..., onclick=..., ect.) doe dat zo:
- Geef elementen zoveel mogelijk een ID mee en haal de elementen zo veel mogelijk met hun ID op.
Naast dat de functie dus een traversable terug geeft en je die dus eerst door een for of forEach loop moet halen voordat het werkt wil ik je ook al vast 4 tips meegeven:
- param is hier niet voor gemaakt en moet je hier ook niet voor gebruiken, gebruik bijv. <input>
- haal elementen niet op in een functie. Dit zorgt ervoor dat je elke keer als je die functie aanroept JS de hele DOM laat doorzoeken naar die elementen. Haal alle nodige elementen op in de global scope en gebruik die in de functie (en maak misschien zelfs gebruik van een global scope)
- Gebruik geen inline JS (onload=..., onclick=..., ect.) doe dat zo:
Code (php)
1
2
3
4
5
6
2
3
4
5
6
document.body.onload = ...;
// of mooier
window.onload = ...;
// en de moderne variant (werkt niet in oldIE)
window.addEventListener('click', ..., false);
// of mooier
window.onload = ...;
// en de moderne variant (werkt niet in oldIE)
window.addEventListener('click', ..., false);
- Geef elementen zoveel mogelijk een ID mee en haal de elementen zo veel mogelijk met hun ID op.