Autor Zpráva
Marty
Profil
Jistě půjde o začátečnickou chybu, leč nejsem schopen to nějak vyřešit, proto prosím o radu:

Mám stránku na které je třeba několik divů a já je chci vytáhnout, abych s nimi mohl pracovat.
Dále mám na této stránce, tento kód:

var allDiv = document.getElementsByTagName('div');
alert(allDiv.length);

Stránka mi ale vyhodí 0. Což není možné, vzhledem k 15 divům co tam jsou.

A ještě otázka na závěr: Je nějaká funkce podobná getElementsByTagName, která by mi ale ze stránky vytáhla elementy s zadanou třídou?

Předem srdečně děkuji za odpovědi.
halogan
Profil
Google muze byt napomocen
peta
Profil *
Marty
2. http://www.volny.cz/peter.mlich/www.htm#www52
odkaz www.quirksmode.org DOM seznam metod
(na prvni pohled nevidim)
odkaz www.mozilla.org DOM seznam metod podle Mozilly
(mozilla tam ma Tagnam, Name, ID)
odkaz u literatura
# * devedge-temp.mozilla.org manual podle mozilly pro JS, DOM

mam pocit, ze jsem to videl u Exploreru, ale nejsem si jist. Kdyz tak si muzes udelat cyklus nebo pouzij Id, ja menil class celeho prvvku. Bud pridam, nebo vymenim nebo uberu
class="aaa"
class="aaa bbb"
class="bbb"
document.getElementsById("xxx").className="bbb";
<b id="xxx">

a jeste je takova pekna finta...
document.getElementsById("xxx").className="bbb";
<b onclick="this.className=(this.className=='aaa')?'bbb':'aaa'">xxxyyy</b >
Jestli teda rozumis podmince...


1. vyuzivam script na galerii a nemam s tim problem

function putAlt(idecko)
{var i,o,x,m,d1,d2,a;
o=objGet(idecko).getElementsByTagName("A");
for(i=0;i<o.length;i++)
{ x=o[i].childNodes;
if (x[0].tagName=="IMG")
{ m=x[0];
a=m.getAttribute("alt");
d1=document.createElement("i");
d2=document.createTextNode(a);
d1.appendChild(d2);
o[i].appendChild(d1);
}
}
}

<div class="galerie gfoto1" id="g1">

<a href="obr/peta/pmlich-foto0.jpg"><img alt="ja0 12" src="obr/nahledy/xpmlich-foto0.jpg" width="90" height="120" /></a>
<a href="obr/peta/pmlich-foto.jpg" ><img alt="ja1 14" src="obr/nahledy/xpmlich-foto.jpg" width="83" height="120" /></a>
<a href="obr/peta/pmlich-foto2.jpg"><img alt="ja3 17" src="obr/nahledy/xpmlich-foto2.jpg" width="90" height="120" /></a>
<a href="obr/peta/pmlich-foto1.jpg"><img alt="ja2 18" src="obr/nahledy/xpmlich-foto1.jpg" width="90" height="120" /></a>
<a href="obr/peta/pmlich-foto3.jpg"><img alt="ja4 21" src="obr/nahledy/xpmlich-foto3.jpg" width="90" height="120" /></a>
<br />Výk je tak pribli×ný...
</div>

Zrejme jsi si nenasel zadny podobny priklad na inetu, je jich tisice
peta
Profil *
halogan Hm, jak sem predpokladal, asi je to jen v IE. :) Hold ses rychlejsi :)
peta
Profil *
jeste mne napada dalsi moznost s class a to, ze FF i IE maji DOM funkci pro prepisovani STYLE tagu a v nem classy. Bohuzel tohle nezna opera. odkaz na JS nebo DOM opery tam nekde mozna mama, ale kdyztak maji to na strankach, jen si to najit.

To je jen takova poznamka k tomu -get element by class name-, to je IE, cili 70% prohlizecu, kdezto prepisovani style je 95% (minus stare, minus opera a nejake exoticke, co to neznaji)
Marty
Profil
No tak jsem si vygoogloval jednu vyhotovenou funkci na získání elementů podle třídy, zaimplementoval to, ale bohužel nic nepomohlo.

Je to na stránce: http://martysblog.wz.cz/clanek.html . Omlouvám se za ty dva alerty, ale dobře se mi tak ladí skripty. Je tam i ten getElementsByTagName jak vyhazuje 0 elementů.
Leo
Profil
Jasneze vam to vraci nulu, protoze getElementsByTagName volate jeste predtim, nez se v HTML ty divy objevi. Leo
peta
Profil *
Marty
alerty resim jako <div id="xxx"></div>
objekt("xxx").innertHTML+="text aaa";

Ta webka objasnuje vse, konecne kod :) Viz LEO
var i = getElementsByClassName(document, 'div', 'otazka');alert(i.length);
Volas v head jeste driv nez existuje body. Takze prvek pochopitelne neexistuje.
Co s tim?
1 Dat to do funkce kterou volas jako <body onload="">
2 Dat tento radek mezi script tagy pod divy.
3. a uplne nejlepe dat kazdemu tomu divu IDcko, class tam teda muzes mit taky, ale lze jej napsat hromadne...
.aaa div, .aaa span {}
misto
.otazka {}
<div class="aaa">

<div>text</div>
<div class="test">text</div>
<span>text</span>

</div>
Marty
Profil
Děkuji, jak jsem již psal z kraje - bude to něco školáckého. První otázka vyřešena, s getElementsByClassName se ještě vypořádávám.
Toto téma je uzamčeno. Odpověď nelze zaslat.

0