[ bsegic @ 04.01.2008. 12:50 ] @
Pokusavam da napravim funkciju koja za sve "id' koji su definisani u "elems" array, postaviti style "display:none".

Code:

function setInvisible() {
    var elems = new Array(4);
    elems[0] = "dataManagement";
    elems[1] = "programmingLanguages";
    elems[2] = "systemSoftware";
    elems[3] = "network";
     
    for (var i=0; i<=3;i++) {
         document.getElementById(elems[i]).style.display = "none";
            }

}


Kada pozovem funkciju, izbaci gresku:
Code:
document.getElementById(elems[i]) has no properties
document.getElementById(elems[i]).style.display = "none";


Pretpostavljam da je neka banalna greska...
(Svi id su definisani u html, tako da tu nije problem :))

Pozdrav

[Ovu poruku je menjao Aleksandar Ružičić dana 04.01.2008. u 19:43 GMT+1]
[ dakipro @ 04.01.2008. 13:11 ] @
Ili si lose postovao ili ti je forum promenio post, mislim da bi trebalo
Code:

for (var i=0; i<=3;i++) {
document.getElementById(elems[i]).style.display = "none";
}
[ Aleksandar Ružičić @ 04.01.2008. 18:47 ] @
ovo bi trebalo da ti radi u svakom slucaju (bez obzira na broj clanova niza elems):
Code:


function setInvisible()
{
   var elems =
   [
      "dataManagement",
      "programmingLanguages",
      "systemSoftware",
      "network"
   ];

   for (var i = 0; i < elems.length; i++)
   {
      var elem = document.getElementById(elems[i]);

      if (elem) elem.style.display = 'none';
   }

}


izbegavaj da nizove deklarises sa Array() (jer ta konstrukcija stvara konfuzije)

i ubuduce koristi code tagove (a ne quote) kad postujes kod


poz
[ bsegic @ 04.01.2008. 21:55 ] @
Radi, tnx !

poz :)
[ Aleksandar Ružičić @ 04.01.2008. 22:46 ] @
a ako hoces da imas cool kod (u prevodu: da koristis jQuery) onda mozes ovako to da napises:
Code:

function setInvisible()
{
    $.each(
    [
          "dataManagement",
          "programmingLanguages",
          "systemSoftware",
          "network"
    ],

    function()
    {
          $(this).hide();
    });
}


ili mozes da tim elementima (u html-u) dodelis neku klasu, recimo "toggleVisibility", primer:
Code:

<div id="bla bla" class="toggleVisibility"> ...


i onda da imas jednostavne funkcije za kontrolisanje vidljivosti elemenata:
Code:

function setVisible()
{
    $(".toggleVisibility").show();
}

function setInvisible()
{
    $(".toggleVisibility").hide();
}

function toggleVisibility()
{
    $(".toggleVisibility").toggle();
}