Moderní tvorba webových aplikací

O webu

Předchozí/další element v JavaScriptu

Získání následujícího nebo předchozího sourozence pomocí nextSibling a previousSibling.

3 minuty

Následující sourozenec nextSibling

Při vyhledávání elementů pomocí JavaScriptu slouží nextSibling pro získání následujícího sourozence.

Problém je, že jako následující sourozenec je brán kromě HTML elementů i textový obsah.

Bude-li existovat násludjící kód:

<div class="prvni">1</div>
<div class="druhy">2</div>

JavaScriptová konstrukce využívající nexSibling nezachytí element .druhy:

document.querySelector(".prvni").nextSibling;

V tomto případě budou zachyceny bílé znaky mezi elementy.

Dostat se na element .druhy by znamenalo:

  1. Použít nextSibling dvakrát:

    document.querySelector(".prvni").nextSibling.nextSibling;
  2. Zrušit bílé znaky mezi HTML značkami.

    <div class="prvni">1</div><div class="druhy">2</div>

Následující element – nextElementSibling

Situaci, kdy nextSibling vrátí bílé znaky, řeší nextElementSibling, který bere v potaz pouze HTML elementy.

document.querySelector(".prvni").nextElementSibling;

Vlastnost nextElementSibling funguje od IE 9 a pro starší prohlížeče jde doskriptovat s využitím nextSibling.

var nextElementSibling = function(el) {
    do {
        el = el.nextSibling;
    } while (el && el.nodeType !== 1);
    return el;
};

Použití:

var druhy = nextElementSibling(
  document.querySelector(".prvni")
);

Živá ukázka

Předchozí – previousSiblingpreviousElementSibling

Metody pro získání předchozího sourozence nebo předchozího elementu fungují obdobně jako next*Sibling.

document.querySelector(".druhy").previousSibling;

Případně pro získání předchozího elementu.

document.querySelector(".druhy").previousElementSibling;

Další/předchozí v jQuery

V jQuery existují pro předchozí a další element klíčová slova prev a next a fungují jako nextElementSibling/previousElementSibling.

Následující:

$(".prvni").next();

Předchozí:

$(".druhy").prev();

Odkazy jinam

Související články

Sleep v JavaScriptu

Jak implementovat sleep/delay funkcionalitu v JavaScriptu pomocí Promise a async/await

6 minut

JavaScript Battery API

Jak v JS zjistit stav baterie, co dnes funguje a kdy API nepoužívat.

3 minuty

Web jecas.cz píše Bohumil Jahoda, kontakt
Seznam všech článků
2013–2025