Autor Zpráva
benett
Profil
Ahoj,
chtěl jsem nastavit několika prvkům třídu, bohužel toto nefunguje z nějakého důvodu. Nevíte, ke by mohla být chyba?
Chyba je až v té podmínce, kód předtím je v pořádku.

window.onload = function () {
var x=document.getElementsByTagName('input');
for (var i=0;i<x.length;i++) {
y=x[i].id.substring(x[i].id.length-1);
if (y=='n'&&x[i].id!='lsn') {
var z=document.getElementById(x[i].id); var s=setAttribute("class", "nevid");
z.s;
z .previousSibling.s;
z.nextSibling.s;
}
}
}
centi
Profil
var s=setAttribute("class", "nevid");
Voláš funkciu, ktorá neexistuje. Resp takýmto spôsobom funkciu, ktorú chceš nemôžeš použiť. Je to funkcia definovaná na HTML elementy, teda ju musíš volať na HTML elemente.

z.setAttribute(...);
z.previousSibling.setAttribute(...);
z.nextSibling.setAttribute(...);


A aký zmysel má vytváranie referencie na INPUT (var z=document.getElementById(x[i].id);), keď naň referenciu už dávno máš (x[i])?
peta
Profil
benett
Nastroje - Moznosti - JS konzola (chybova)
F5
benett
Profil
Díky moc vám oběma. Bohužel jsem zjistil, že IE toto neumí. Existuje nějaká možnost, jak toto udělat podobně nebo budu muset použít přímý zápis stylu (style.display="none")?
peta
Profil
"jak toto udělat"
Co?

x.setAttribute("class", "nevid");
x.className=nevid"

centi ti psal, ze toto mas jako nesmysl:
z.previousSibling.s;
mozna jsi to nepochopil, tak jine vysvetleni:
HTMLElement.setAttribute("class", "nevid");
tj, tato funkce existuje pouze na HTMLElementu. V jadnem window neni.
jakpsatweb - javaascript - objekt window
To znamena, ze na zadny jiny objekt ji NELZE pouzit.
tj.
s=setAttribute();
je totez jako
s=window.setAttribute();
a zkus si
alert(setAttribute());
co ti to napise

centi ti to napsal strucne, toto je platny zapis:
z.setAttribute(...);
z.previousSibling.setAttribute(...);
z.nextSibling.setAttribute(...);

a toto je to, co nebude fungovat:
var s=setAttribute("class", "nevid");
z.s;
z .previousSibling.s;
z.nextSibling.s;

Fakt moc by pomohlo, kdyby sis konecne otevrel tu JS konzolu a laskave si precetl, ktery radek ti hlasi chybu.
Pak dal do google.com slova jako:
javascript javascript setAttribute mozilla explorer
javascript javascript previousSibling mozilla explorer
javascript javascript nextSibling mozilla explorer
a vyhledanim prislusnych funkci by ses dozvedel, jak se s nimi pracuje, aby spravne fungovali.

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