Toon posts:

[JS] Variabele in object gebruiken

Pagina: 1
Acties:

Verwijderd

Topicstarter
in een javascript doe ik stijlelementen controleren of ze al dan niet bestaan. Het gaat er even niet om hoe efficient de onderstaande code is maar hoe iik het werkend kan krijgen (als dat mogelijk is tenminste).


JavaScript:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
        var x
        var mijnElementen = new Array()
        mijnElementen[0] = "contentblok"
        mijnElementen[1] = "content_picture"
        mijnElementen[2] = "content"
        mijnElementen[3] = "sidecontentblok"
        mijnElementen[4] = "sidecontent_text"       
        mijnElementen[5] = "content_text"
        
        var mijnHeight = new Array()
        mijnHeight[0] = -120
        mijnHeight[1] = -120
        mijnHeight[2] = -120
        mijnHeight[3] = -120
        mijnHeight[4] = -205
        mijnHeight[5] = -205                
        
        for (x in mijnElementen)
        {       
            alert(mijnElementen[x]);
            if (typeof mijnElementen[x] == 'undefined') {
                dummy = 0;
            }
            else{
                var mijnElement = mijnElementen[x];
                alert(mijnElement);
                document.all.mijnElement.style.height=myHeight-mijnHeight[x]+'px'; /* minus de padding */
            }
        }


in het stukje na "document.all" wil ik dan het element gebruiken welke uit de array komt, oftewel "mijnElement[x]". Zoals het nu is krijg ik de error:

"document.all.mijnElement.style is null or not an object"

Ik denk dus dat ik code-technisch gezien de variabele er niet goed in zet qua syntax. Ik ben geen javascript guru dus vergeef me als dit 1 van de javascript essentials zou moeten zijn...

hopelijk ziet iemand direct de fout. alvast bedankt.

Verwijderd

Paar puntjes:
• doe maar for(var i=0; i< mijnElementen.length; i++) bij een indexed array
• document.all.mijnElement --> document.all[mijnElement]
• beter nog: document.all[mijnElement] --> document.getElementById(mijnElement)

Verwijderd

Topicstarter
ik heb al iets gevonden om te controleren of een object voorkomt. Met andere if element exists.

JavaScript:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
    if(document.all)
    {
        /* nu heel lelijk checken of het element bestaat*/
        
        var mijnElementen = new Array()
        mijnElementen[0] = "contentblok"
        mijnElementen[1] = "content_picture"
        mijnElementen[2] = "content"
        mijnElementen[3] = "sidecontentblok"
        mijnElementen[4] = "sidecontent_text"       
        mijnElementen[5] = "content_text"
        mijnElementen[6] = "nep"        
        
        var mijnHeight = new Array()
        mijnHeight[0] = -120
        mijnHeight[1] = -120
        mijnHeight[2] = -120
        mijnHeight[3] = -120
        mijnHeight[4] = -205
        mijnHeight[5] = -205
                
        for(var i=0; i< mijnElementen.length; i++)
        {
            mijnElement = mijnElementen[i];
            if (document.getElementById(mijnElement) != null) 
            {
                alert('hij bestaat'+mijnElement);
            } 
            else 
            {
                alert('hij bestaat niet'+mijnElement);
            }
        }
    }


je input heeft me zeker op weg geholpen. bedankt. Peace!

  • BikkelZ
  • Registratie: Januari 2000
  • Laatst online: 24-11 23:24

BikkelZ

CMD+Z

Ik vermoed dat die twee Arrays iets met elkar te maken hebben. Dingen die iets met elkaar te maken hebben zet ik altijd bij elkaar tenzij het echt niet anders kan:

JavaScript:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
elementen = Array();
elementen['dinges'] = -120 // dat hoogte ding van jou, wil je meer parameters kwijt doe je dat door = Array(-120, 'blauw') te doen ofzo
elementen['dattes'] = -100 
// etcetera

for (var k in elementen)
{
// nu is k bijvoorbeeld 'dinges', let maar op
alert(k);
if (document.getElementById('k') !== null)
{
// dan bestaat hij dus
// doe je ding
}
}


Dat is compacter, logischer, en makkelijker in de afwikkeling.

Tenslotte heb je een reeks van dingen (array) met dingen die een naam hebben (associatieve naam) en een x aantal parameters. Dit zit een beetje tussen wat jij doet en OO in.

-------

Haakje.

iOS developer