Autor | Zpráva | ||
---|---|---|---|
Homeboy Profil * |
#1 · Zasláno: 13. 4. 2008, 15:13:03
Mám tag <ul>, vněmž může být libovolný počet tagů <li> pro každou stránku. Aby tento skript byl použitelný na více stránkách a nemusel ho hned upravovat pro každou potřeboval bych zjistit tento počet. Jde to nějak?
|
||
LuBoss Profil * |
#2 · Zasláno: 13. 4. 2008, 15:26:30
napriklad keby si mal pri tom tagu <ul> definovane nejake ide cize <ul id="myList"> ... tak potom pocet jeho potomkov v tomto pripade tych tagov <li> zistis javascriptom napr. takto var p = document.getElementById("myList").childNodes.length
|
||
Homeboy Profil * |
#3 · Zasláno: 13. 4. 2008, 15:38:53
<ul id="myList"> <li>Nový produkt</li> <li>Seznam produktů</li> </ul> <script language="javascript"> alert(document.getElementById("myList").childNodes.length); </script> Tohle mi však vyhodí že je počet 5? jak je to možný |
||
los Profil * |
#4 · Zasláno: 13. 4. 2008, 15:57:38
Kolekcia ul.childNodes obsahuje všetky detské uzly, t.j. aj textové uzly. Ak z nej chceš zistiť iba počet elementov, musíš ich spočítať v cykle (nejako takto: for (var i = 0, count = 0; i < ul.childNodes.length; ++i) if (ul.childNodes[i].nodeType == 1) ++count;)
Prípadne môžeš použiť ul.getElementsByTagName("li"). Takáto kolekcia obsahuje všetky vnorené elementy li, čiže aj také, ktoré sú napr. vo vnorenom zozname. |
||
LuBoss Profil * |
#5 · Zasláno: 13. 4. 2008, 16:13:35
no v MSIE by ti to vyhodilo 2, avsak firefox tam vytvara textove uzly, tam kde zalomujes riadok, takze aby ti to fungovalo aj inde ako v MSIE by si to musel mat dako takto:
<ul id="myList"><li>Nový produkt</li><li>Seznam produktů</li></ul> <script language="javascript"> alert(document.getElementById("myList").childNodes.length); </script> |
||
peta Profil |
#6 · Zasláno: 13. 4. 2008, 18:30:22
LuBoss
jo, protoze jeden z prohlizecu pocita nove radky jako textNode obj.getElementsBytagName('LI') jebo to tve, ale musis pridat IF na obj.tagName=='LI' |
||
Časová prodleva: 18 let
|
0