[JS] getElementById doet vreemd?

Pagina: 1
Acties:

  • Zoolander
  • Registratie: Januari 2003
  • Laatst online: 23-11-2022

Zoolander

superslim!

Topicstarter
In IE alert hij niet de classname, en in FF wel. Tevens lijkt het erop dat hij a_doelstelling_0 als ID ziet omdat hij die classname (als ik die zou geven) wel alert.

Is dit een bug of zit er een fout in mijn code, snap er echt niks van 8)7


(is geen PHP, maar even voor colorcoding snel gedaan)
PHP:
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
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
<html>
    <head>
        <title></title>
    </head>

    <body>
        
        <!-- start formholder -->
        <form name="mainForm">
        <div id="mainFormHolder">   
            
            <!-- formpage -->
            <div id="next_1">

                <div>
                    <table>
                        <tr>
                            <td colspan="11">
                                bla bla bla
                            </td>
                        </tr>
                        <!-- haal deze rij weg en hij doet het wel, waaarom? -->
                        <tr>
                            <td>
                                <input type="radio" id="a_doelstelling_0" name="a_doelstelling" value="bla" >
                            </td>
                            <td>
                                bla
                            </td>
                            <td>
                                <input type="radio" id="a_doelstelling_1" name="a_doelstelling" value="bla" >
                            </td>
                            <td>
                                bla
                            </td>
                            <td>
                                <input type="radio" id="a_doelstelling_2" name="a_doelstelling" value="bla" >
                            </td>
                            <td>
                                bla
                            </td>
                            <td>
                                <input type="radio" id="a_doelstelling_3" name="a_doelstelling" value="bla" >
                            </td>
                            <td>
                                bla
                            </td>
                            <td>
                                <input type="radio" id="a_doelstelling_4" name="a_doelstelling" value="bla" >
                            </td>
                            <td>
                                bla
                            </td>                           
                            <td>
                                <textarea name="a_doelstelling_d" rows="3" cols="3"></textarea>                         
                            </td>
                        </tr>
                        <tr>
                            <td colspan="11">
                                <div id="a_doelstelling" class="DOET HET NIET"></div>
                                <div id="a_doelstelling_d"></div>
                            </td>
                        </tr>
                    </table>
                </div>

            </div>
        
        </div>
        </form>
        <!-- end of formholder -->
        
        <script type="text/javascript">
            
            alert(document.getElementById('a_doelstelling').className);

        </script>

        
    </body>
</html>

mijn naam slaat nergens op, althans niet op mij :P


  • T-MOB
  • Registratie: Maart 2001
  • Laatst online: 23:36
Blijkbaar ziet IE het name-attribuut van je radiobutton als ID. Kwestie van een ander id gebruiken voor je div dus.

Regeren is vooruitschuiven


  • Zoolander
  • Registratie: Januari 2003
  • Laatst online: 23-11-2022

Zoolander

superslim!

Topicstarter
ja, dat dacht ik al. Maar hoe vreemd is dat!
Is document.all een optie, of is dat heel vies :P

mijn naam slaat nergens op, althans niet op mij :P


  • T-MOB
  • Registratie: Maart 2001
  • Laatst online: 23:36
Zoolander schreef op zaterdag 11 maart 2006 @ 11:17:
ja, dat dacht ik al. Maar hoe vreemd is dat!
Is document.all een optie, of is dat heel vies :P
Tsja, het is IE dus zo vreemd is het niet. Oplossingen zijn er natuurlijk zat te te bedenken, maar het ligt een beetje aan de context. Wat probeer je precies te bereiken? Persoonlijk zou ik namelijk gewoon zorgen dat er geen gelijke id's en name's in het document voorkomen. Dan werkt het immers sowieso.

De bug is trouwens wel meer mensen opgevallen...

[ Voor 12% gewijzigd door T-MOB op 11-03-2006 11:32 ]

Regeren is vooruitschuiven


  • crisp
  • Registratie: Februari 2000
  • Laatst online: 00:42

crisp

Devver

Pixelated

Het is juist vanwege backwards compatibility met het antieke document.all object model dat IE alles met een name of id in dezelfde namespace gooit, en dat levert inderdaad wel eens problemen op...

Intentionally left blank


  • Zoolander
  • Registratie: Januari 2003
  • Laatst online: 23-11-2022

Zoolander

superslim!

Topicstarter
inderdaad, het is IE....
Ik heb nu de ID maar anders genoemd en dit in mijn scripts aangepast.
Het is wel frustrerend dat je JS files best mooi zijn, tenzij ze crossbrowser moeten alias geen dom L2.

mijn naam slaat nergens op, althans niet op mij :P

Pagina: 1