Check alle échte Black Friday-deals Ook zo moe van nepaanbiedingen? Wij laten alleen échte deals zien
Toon posts:

[Javascript] Variabele namen voor elementen

Pagina: 1
Acties:

Verwijderd

Topicstarter
Ik ben met iets bezig, maar heb er nog weinig ervaring mee :X .

Ik heb twee textboxen met id test31 en id test32 op mijn pagina en onderstaand script.
Als de waarden gewijzigd worden, wil ik de functie calc() uitvoeren.
Het gaat nu om test.onkeyup = calc;

Voor test moet eigenlijk komen, test31.onkeyup = calc; en test32.onkeyup = calc;
Hoe krijg ik dit voor elkaar. Als ik 'test' wijzig in 'test31' werkt het wel.

JavaScript:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
window.onload = function() {
    var i = 1;
    while (i <= 2) {
        
        var test = "test3"+i;

        test.onkeyup = calc;
        
    // einde while loop
    }
    
    function calc() {
    
    
    alert('test');
    
    }
}

[ Voor 3% gewijzigd door NMe op 08-11-2014 12:17 . Reden: Code-tags. ]


  • NMe
  • Registratie: Februari 2004
  • Laatst online: 20-11 11:59

NMe

Quia Ego Sic Dico.

Een string heeft geen onkeyup. Als je per se op die manier je variabelenamen op wil bouwen zul je getElementById moeten gebruiken, Of, wat een (veel) betere oplossing is: de velden die deze event moeten krijgen een class of data-attribuut geven, door alle elementen met die class/dat attribuut heen lopen en per element die event toevoegen.

Verder: Waar hoort mijn topic? staat bovenaan dit forum. Het was fijn geweest als je die op zijn minst even had opengeklikt. ;) Code posten doen we ook niet inline, dat doen we met de code-tag: Hoe post je code? / Hoe gebruik je de code tag?

PRG>>WEB

[ Voor 6% gewijzigd door NMe op 08-11-2014 12:18 ]

'E's fighting in there!' he stuttered, grabbing the captain's arm.
'All by himself?' said the captain.
'No, with everyone!' shouted Nobby, hopping from one foot to the other.


  • NNF
  • Registratie: November 2003
  • Laatst online: 29-11-2024

NNF

Wat NMe zegt :) Geef je elementen een class, haal ze op met document.getElementsByClassName en dan kun je er events aan vastknopen. Daar is tegenwoordig de addEventListener methode voor, zoals jij het nu doet is wel een beetje 1996 :P

  • gitaarwerk
  • Registratie: Augustus 2001
  • Niet online

gitaarwerk

Plays piano,…

Als performance een groot issue is, zal ik kiezen voor een class name, in plaats van een data-attribuut. Dat is sneller.

Ontwikkelaar van NPM library Gleamy


  • NMe
  • Registratie: Februari 2004
  • Laatst online: 20-11 11:59

NMe

Quia Ego Sic Dico.

gitaarwerk schreef op zondag 09 november 2014 @ 15:04:
Als performance een groot issue is, zal ik kiezen voor een class name, in plaats van een data-attribuut. Dat is sneller.
Dat gaat om dermate getallen dat het vrijwel geen verschil maakt, afhankelijk van je browser: http://jsperf.com/data-selector-performance. Als je op dit soort dingen moet bezuinigen is de kans groot dat je elders veel meer winst kan halen. Nog naast dat dit hier nogal offtopic is zolang de TS niet heeft gezegd dat zijn probleem is opgelost. ;)

'E's fighting in there!' he stuttered, grabbing the captain's arm.
'All by himself?' said the captain.
'No, with everyone!' shouted Nobby, hopping from one foot to the other.


  • gitaarwerk
  • Registratie: Augustus 2001
  • Niet online

gitaarwerk

Plays piano,…

Daar heb je een punt :Y)

Ontwikkelaar van NPM library Gleamy

Pagina: 1