[js] 'divObj.visibility = value' werkt niet

Pagina: 1
Acties:

  • r0bert
  • Registratie: September 2001
  • Laatst online: 11-08 16:19
Ik heb eigenlijk 2 probleempjes ..

eerste is dit stukje script..
code:
1
2
3
4
5
6
7
for (i = 0; i < existingDivs.length; i++) {
  if (existingDivs[i].style.visibility == "hidden") {
    strStatusInnerHTML += "<span id='" + whichDiv.id 
    + "status' onClick='MinMaxDiv(" + whichDiv.id + ");'>" 
    + whichDiv.id + " | </span>";
  }
}

'existingDivs' is een Array met de Divs die in de loop gebruikt moeten worden. Als een div uit de Array 'hidden' is moet er een stukje html bij strStatusInnerHTML toegevoegd worden..

Maar bij het checken wat de waarde van de div uit de array 'existingDivs' is, gaat het fout, want dan zegt ie dat het object leeg is of niet bestaat. nu heb ik al zitten klooien met eval enzooj, maar 't wil nog niet echt lukken ..

fout zit dus ergens in
code:
1
if (existingDivs[i].style.visibility == "hidden") {

2e probleempje is niet zo belangrijk omdat ik daar zelf vast met wat zoeken ook wel uit kan komen. In plaats van een array met daarin de divs op de pagina, zou ik graag voor de loop de divs uit willen lezen die bestaan uit 'divId{getal}', lijkt me een beetje onzin om daarvoor het hele document object model ofzoiets door te gaan lopen.. dus zoek ik eigenlijk een oplossing om alleen de divs door te lopen (misschien net zo als je document.forms hebt.. om alleen de forms te bekijken en document.images ..enz..)

Hopenlijk is het een beetje duidelijk wat ik getypt heb, want zelf snap ik dér nog de ballen van :P

  • Bosmonster
  • Registratie: Juni 2001
  • Laatst online: 29-08 19:47

Bosmonster

*zucht*

post de rest van het script ook eens.. want hier zit de fout niet in.

  • Pelle
  • Registratie: Januari 2001
  • Laatst online: 10:56

Pelle

🚴‍♂️

Dan zijn de elementen in je array geen div's waarschijnlijk :)

Probeer het eens zo:
code:
1
document.getElementById(existingDivs[i]).style.visibility

  • r0bert
  • Registratie: September 2001
  • Laatst online: 11-08 16:19
code:
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
<html>

<head>

  <title>
    TiTeL
  </title>

  <style type="text/css">
    body {
    font-family: Verdana, Tahoma, Arial;
    font-size: 10pt;
    color: black;
    padding: 0px;
    }
  </style>

</head>

<body>

<div id="divId1" style="position: absolute; visibility: visible; left: 50px; top: 50px; border: red 1 solid; width: 250px; height: 200px;" onClick="MinMaxDiv(this);">
    <table style="width: 250px; height: 200px; border: green 1 solid;">
        <tr>
            <td style="width: 100%; height: 30px; border: blue 1 solid; text-align: right;">_ O X</td>
        </tr>
        <tr>
            <td style="width: 100%; height: 220px; border: blue 1 solid; text-align: right;">tekst</td>
        </tr>
    </table>
</div>

<div  id="divStatus" style="position: absolute; visibility: visible; left: 450px; top: 380px; border: yellow 1 solid; width: 250px; height: 25px;">
blaat
</div>

<script language="JavaScript" type="text/javascript">
var existingDivs = new Array();
existingDivs = Array('divId1');

function MinMaxDiv(whichDiv) {
    switch(whichDiv.style.visibility) {
        case "hidden":
          whichDiv.style.visibility = "visible";
          strStatusInnerHTML = "";

// Oplossing vinden om de bestande divs in de loop in te lezen en niet uit een array te halen
          for (i = 0; i < existingDivs.length; i++) {
            if (existingDivs[i].style.visibility == "hidden") strStatusInnerHTML += "<span id='" + whichDiv.id + "status' onClick='MinMaxDiv(" + whichDiv.id + ");'>" + whichDiv.id + " | </span>";
          }
          break;
        case "visible":
          whichDiv.style.visibility = "hidden";
          divStatus.innerHTML = "<span id='" + whichDiv.id + "status' onClick='MinMaxDiv(" + whichDiv.id + ");'>" + whichDiv.id + " | </span>";
          break;
        default:
          break;
    }
}

</script>

</body>

</html>

hele code (copy-paste)

* r0bert zegt: '?!?! Hij doet'!!
beetje dom van mezelf alsk de oplossing zo leeS :)

  • Bosmonster
  • Registratie: Juni 2001
  • Laatst online: 29-08 19:47

Bosmonster

*zucht*

Pelle's ideetje zou moeten werken :P

in de array sla je nu alleen de id's op als strings.. niet als object.