Autor | Zpráva | ||
---|---|---|---|
benett Profil |
#1 · Zasláno: 24. 8. 2007, 10:38:08
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 |
#2 · Zasláno: 24. 8. 2007, 11:01:24
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.
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 |
#3 · Zasláno: 24. 8. 2007, 14:40:32
benett
Nastroje - Moznosti - JS konzola (chybova) F5 |
||
benett Profil |
#4 · Zasláno: 24. 8. 2007, 16:48:21 · Upravil/a: benett
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 |
#5 · Zasláno: 24. 8. 2007, 19:40:28
"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. |
||
Časová prodleva: 17 let
|
0