Autor Zpráva
Amunak
Profil
Mám například tag A, který má nastavený onclick pro vyvolání nějaké funkce. Jak mám teď v té funkci zjistit třeba innerHTML toho tagu?

Zkoušel jsem to přes atribut e, window.event a různé další věci, ale nic z toho nefungovalo... Jediné funkční (ale dost nepraktické) řešení bylo vytvořit u funkce další parametr, a pak při zápisu volání funkce jí na jeho místo nacpat výraz this.
_es
Profil
Amunak:
Nejako nerozumiem, čo vlastne chceš, keďže this poznáš.
Nestačí použiť this.innerHTML?
Uveď trochu presnejšie, čo vlastne požaduješ.
Amunak
Profil
_es:
pokud this použiju uvnitř funkce, neugazuje to na ten tag a...

HTML:
<a onclick="mojeFce(this);">odkaz</a>

JS:
function mojeFce(thisStatement){
  var textOdkazu = thisStatement.innerHTML;
};


...to je ta nepraktická cesta... Mě jde o to nemít tam to this v HTML, protože je to tam snad zbytečný, ne? A zbytečně to stěžuje manimulaci, zvyšuje datovej objem, a asi i víc zpomaluje skript... Jasně že to jsou detaily, ale jde mi hlavně o tu nepraktičnost.
_es
Profil
Amunak:
Asi ti ide o to, že sa dá udalosť priradiť aj priamo v JS kóde:
objekt.onclick = mojeFce;
kde objekt je nejakým spôsobom získaný JS objekt toho elementu - napríklad cez document.getElementById a pod.
A v tej tvojej funkcii bude this odkazovať na objekt toho elementu. Udalosti definované v JS sú navyše aj výkonnejšie, ako keď sú definované v HTML kóde.
Chamurappi
Profil
Reaguji na Amunaka:
Mě jde o to nemít tam to this v HTML, protože je to tam snad zbytečný, ne?
Ne.

zbytečně to stěžuje manimulaci, zvyšuje datovej objem, a asi i víc zpomaluje skript
Ne zbytečně.

asi i víc zpomaluje skript
Ne.

Můžeš celý onclick přiřazovat skriptem. I kdyby šlo ten element najít přes objekt s parametry události, tak ten bys musel v půlce prohlížečů také předávat jako argument, tedy volat „mojeFce(event)“.
Amunak
Profil
Chamurappi, _es:
Takže to nějak jednoduše nejde a bude lepší použít to this? Ach jo... No, co se dá dělat. díky za spolupráci.

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