Autor Zpráva
Jack Finger
Profil
Nazdar,
mám na webu skript, který má za úkol vybrat všechny <div>y na stránce, projít nimi v cyklu a jestliže id <div>u začíná na JQueryWindow_, pak se pokusit jej skrýt. Problém je již při začátku cyklu. Chybová konzola (Firebug) mi hlásí divs[j] has no properties na řádku s alert-em (když jej oddělám, tak u if() ), ale alert() sám o sobě vyhodí správně id všech <div>ů. Kde by mohla být chyba? Díky.

var divs = document.all.tags["div"];
  for(j = 0; j <= divs.length; j++){
    alert(divs[j].id);
    if(divs[j].id != null){
      var now = divs[j].id;
      if(now.substr(0,13) == 'JQueryWindow_'){
        var actually = divs[j];
        jQuery(actually).hide("slow");
      }
      actually = '';
      now = '';
    }
  }


stránka: http://www.about.dta3.com/pws/jack_finger/clanky.html
při kliknutí na "popis článku"
zbystr
Profil *
var div = document.getElementsByTagName('div');
for (i=0; i<div.length; i++)
{
if(div[i].substr(0,13) == 'JQueryWindow_')
{
jQuery(div[i]).hide("slow");
}
}


Snad jsem se nekde neprepsal
zbystr
Profil *
trocha estetiky
var div = document.getElementsByTagName('div');
for (i=0; i<div.length; i++)
     if(div[i].substr(0,13) == 'JQueryWindow_')
           jQuery(div[i]).hide("slow");
peta
Profil
zbystr
var div = document.getElementsByTagName('DIV'); // pro jistotu, IE tusim pouziva velke pismena a muze a nemusi fungovat
zbystr
Profil *
jede to i s malymi
Chamurappi
Profil
Reaguji na Jacka Fingera:
for(j = 0; j <= divs.length; j++)
Jakmile nastane situace, že se j == divs.length, pak se divs[j] nachází undefined a to nemá žádné vlastnosti.
Odmaž rovnítko.

Reaguji na zbystra:
div[i].substr(0,13)
Vypadlo ti id. Objekt <div> nemá metodu substr.

Reaguji na petu:
Kam na tyhle bláboly chodíš? Všechny prohlížeče používají v HTML DOMu pro názvy elementů velká písmena, ale hledat umí i podle malých, Explorer nevyjímaje.
zbystr
Profil *
Chamurappi:
jj prepsal jsem se
peta:
velke pismena maji roli, pokud by jsi chtel porovnat daneho DOM elementu nodeName

if (elemnet.nodeName == 'DIV') ....
ah01
Profil
Jack Finger
Ty na stránce používáš jQuery a přesto se moříš s takovýmto skriptem, nechápu. Zřejmě moc o jQuery nevíš a používáš ho jen na efekty. Doporučuji ti, si jQuery prostudovat (http://jquery.com). Ušetříš si takové práce...

Např. celý ten tvůj skript co se tady řeší, jde naspat pomocí jQuery takto:
$("div[id^=JQueryWindow_]").hide("slow");


ostatní
to si toho nikdo nevšiml?
zbystr
Profil *
ah01: jj vsiml, ale jQuery nepouzivam, mam radeji Mootools :)
Jack Finger
Profil
ah01
oj, mohlo mě napadnout, že to JQuery umí. omlouvám se, příště nejprve vytáhnu mozek z šuplíku, rychleji jednám než uvažuju.

ostatní
díky

Vaše odpověď

Mohlo by se hodit

Neumíte-li správně určit příčinu chyby, vkládejte odkazy na živé ukázky.
Užíváte-li nějakou cizí knihovnu, ukažte odpovídajícím, kde jste ji vzali.

Užitečné odkazy:

Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm:

0