JavaScript: Hierarchikus referencia elemekre
Hello,
Felmerult egy aprobb problemam, amiben segitsegeteket kernem:
Adott egy XSL-el eloallitott oldal (amely ebool adodoan szep tiszta hierarchiaval rendelkezik, amelyet nem szeretnek megbontani globalis referenciakkal), ahol tobb blokk talalhato a kovetkezohoz hasonlo koddal:
Ekkor azt szeretnem, hogy a switchDescription fuggveny valtoztassa a hozza tartozo DESCRIPTION id-ju DIV lathatosagat.
En ezt irtam:
Na, ez mukodott Operaban, de sem Mozillaban, sem IE-ben nem. A konzol szerint -ha jol emlekszem- az egyik esetben nem letezett 'description' entitas, a masik esetben mar a parentNode-al is gondok voltak.
Valaki tud-e erre cross-browser kompatibilis megoldast?
(masfel ora google utan sem lettem okosabb, pedig allitolag intelligens srac vagyok :)
■ Felmerult egy aprobb problemam, amiben segitsegeteket kernem:
Adott egy XSL-el eloallitott oldal (amely ebool adodoan szep tiszta hierarchiaval rendelkezik, amelyet nem szeretnek megbontani globalis referenciakkal), ahol tobb blokk talalhato a kovetkezohoz hasonlo koddal:
<div class="list">
<h3 id="listaCim"><a href="/javascript:;" onClick="switchDescription(this);">ListaNev</a></h3>
<div class="listDescription" id="description" style="display:none;">
Lista hosszabb leirasa
</div>
<ul id="listBody">
<li>Valami</li>
...
</ul>
</div>
<h3 id="listaCim"><a href="/javascript:;" onClick="switchDescription(this);">ListaNev</a></h3>
<div class="listDescription" id="description" style="display:none;">
Lista hosszabb leirasa
</div>
<ul id="listBody">
<li>Valami</li>
...
</ul>
</div>
Ekkor azt szeretnem, hogy a switchDescription fuggveny valtoztassa a hozza tartozo DESCRIPTION id-ju DIV lathatosagat.
En ezt irtam:
function showDescription(targetObj) {
if (targetObj.parentNode.parentNode.childNodes['description'].style.display != 'block') {
targetObj.parentNode.parentNode.childNodes['description'].style.display = 'block';
} else {
targetObj.parentNode.parentNode.childNodes['description'].style.display = 'none';
}
}
if (targetObj.parentNode.parentNode.childNodes['description'].style.display != 'block') {
targetObj.parentNode.parentNode.childNodes['description'].style.display = 'block';
} else {
targetObj.parentNode.parentNode.childNodes['description'].style.display = 'none';
}
}
Na, ez mukodott Operaban, de sem Mozillaban, sem IE-ben nem. A konzol szerint -ha jol emlekszem- az egyik esetben nem letezett 'description' entitas, a masik esetben mar a parentNode-al is gondok voltak.
Valaki tud-e erre cross-browser kompatibilis megoldast?
(masfel ora google utan sem lettem okosabb, pedig allitolag intelligens srac vagyok :)
Több azonos ID?
Ezt úgy szokták, hogy id="description-1", id="description-2", stb.
A js függvénynek meg egyszeruen átadják a számot.
hierarchia
( XPath: //div[@class="list"]/nodeName[@id="description"] )
//
ashita
class
Attila
<Nincs cím>
DOM specifikációba belenézve mintha az lenne, hogy childNodes visszatérési értéke NodeList, amihez csak egy length tulajdonság és egy item() metódus tartozik. Vagy hol van leírva a fenti?
Attila
Megoldva
ashita