• 4 odgovora
  • 2.445 pregleda
Problem sa array i getElementById 04.01.2008. u 12:50 · pre 228 meseci #1
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]
Re: Problem sa array i getElementById 04.01.2008. u 18:47 · pre 228 meseci #3
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
Potpis
rafforum.rs - Forum Računarskog Fakulteta
Re: Problem sa array i getElementById 04.01.2008. u 22:46 · pre 228 meseci #5
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();
}


Potpis
rafforum.rs - Forum Računarskog Fakulteta
Prijavite se da biste odgovorili u ovoj temi.PrijavaRegistracija

Premeštanje teme