Autor Zpráva
parent
Profil *
Zdravím, mám element v javascriptu u kterého potřebuju získat jeho pra-pra-prarodiče
Je nějaký lepší způsob jak to udělat než element.parentNode.parentNode.parentNode.parentNode ? Něco jako parentNode[5] třeba..
díky
Chamurappi
Profil
Reaguji na parenta:
Pokud vím, tak není. Žádná metoda na získání kolekce předků v DOMu neexistuje.
ShiraNai7
Profil
parent:
Můžes na to použít jednoduchou funkci:
function getParentNodes(node)
{
    var nodes = [];
    while(node = node.parentNode) nodes.push(node);
    return nodes;
}

Poté např:
getParentNodes(element)[5]


edit - pokud bys pouze chtěl získávat n-tého rodiče, tak:
function getNthParentNode(node, number)
{
    var n = 0;
    while(true) {
        ++n;
        node = node.parentNode;
        if(!node || n === number) {
            return node;
        }
    }
}
Chamurappi
Profil
Reaguji na ShiraNaiho7:
console.log(number, n);
Pokud tam tohle zapomene, rozbije se mu skript v prohlížečích bez console.

pokud bys pouze chtěl získávat n-tého rodiče
Nebylo by to jednodušší takhle?
function getNthParentNode(node, number)
{
    while(node && number--) node = node.parentNode;
    return node;
}
ShiraNai7
Profil
Chamurappi:
Pokud tam tohle zapomene, rozbije se mu skript v prohlížečích bez console.
Odstraněno, zapomněl jsem to tam při testování.

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: