Autor Zpráva
skrofa
Profil
Nedaří se mi vybrat element přes getElementById, který je součástí svg obrázku.

JavaScript moc neovládám, proto jsem nejprve zkoušel klasicky:
let kruh = document.getElementById("kruh");

pak jsem někde našel konstrukci:
let svg = document.getElementById("svgObrazek");
let svgDoc = svg.contentDocument;
let kruh = svgDoc.getElementById("kruh");
Ale ani toto nefunguje a vyhazuje chybu: Uncaught TypeError: Cannot read property 'getElementById' of undefined (zde na 3. řádku)
Je ta konstrukce vůbec správná, nebo se elementy v svg přes DOM vůbec nedají vybrat?

Příklad svg obrázku:
<svg id="svgObrazek" width="300" height="300">
    <circle id="kruh" cx="225" cy="90" r="20" stroke="black" stroke-width="3" fill="transparent" />
</svg>
skrofa
Profil
Teď jsem to zkoušel přes jQuery a tam mi to funguje:
let kruh = $("#kruh");
Kajman
Profil
Javascript s jeho hledáním musí být spuštěný až po tom, co ten svg je v kódu. Dřív to fungovat nebude.
Živá ukázka

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:

0