Autor Zpráva
Měsíček
Profil
Zdravím, začal jsem se učit DOM a už s ním mám na začátku problémy :) na této adrese jsou udělány 2 divy, které mění pozadí při najetí, jenže jsem to udělal tak nešikovně, že pokud chci, aby nějáký div měnil svou barvu po najetí/odjetí musím mu přiřadit logicky id a událost, ale rád bych to udělal tak, abych nemusel každému to id přidávat, pomohli by jste mi nebo alespoň nasměrovali?
peta
Profil
objekt.parentNode
objekt.childNodes()[0]
objekt.getElementsByTagName('DIV')[0]
pak staci predavat this
function xxx(objekt) {...}
on... = xxx(this,0)
on... = xxx(this,1)
los
Profil *
V obsluhách udalostí môžeš použiť this namiesto identifikátoru: onmouseover="change(this)".
Vo funkcii change môžeš potom pracovať rovno s tým prvkom: a.style.background = "yellow".

Prípadne môžeš obsluhovať onmouseover a onmouseout iba v nadradenom elemente. Napr. pomocou className si označíš elementy, v ktorých chceš meniť pozadie a v obslužnej funkcii zistíš, či sa tá udalosť vyskytla vnútri toho označeného elementu. Záleží od štruktúry, ak to chceš robiť napr. pre všetky divy vnútri jedného rodičovského prvku, tak nemusíš používať ani className.

Napr. jedna z možností:
function changeBackground(color) {
	return function(e) {
		e = e || window.event;

		for (var content = e.target || e.srcElement; content; content = content.parentNode)
			if (content.className == "content") {
				content.style.background = color;
				break;
			}
	}
}
document.onmouseover = changeBackground("yellow");
document.onmouseout = changeBackground("white");
Měsíček
Profil
Losi díky, to je ono, ale měl bych dotaz .. je i toto DOM? (omlouvám se za takovou blbou otázku, ale o JS/DOM nevím skoro nic.)
los
Profil *
DOM je definované rozhranie, pomocou ktorého sa dá pristupovať k dokumentu - pridávať/uberať elementy, meniť ich atribúty a pod. Každý prehliadač má svoj vlastný objektový model dokumentu, pričom existuje aj W3C špecifikácia DOMu.

Takže odpoveď je: Používa sa tam aj DOM.
Chamurappi
Profil
Reaguji na Měsíčka:
Do DOMu spadá vše, co není přímo součástí JS. Sám JavaScript neumí vlastně nic. Jakákoliv viditelná akce je změna v DOMu.
DOM v prohlížečích je spíše WOM, protože nejvyšším objektem v hierarchii není document, ale window.
Měsíček
Profil
los, Chamurappi

Díky za vysvětlení.
Leo
Profil
Jeste doplneni k JS vs. DOM. JavaScript dnes muze bezet i v pdf dokumentu, nebo v aplikacich od Adobe jako je Photoshop apod. Zatimco JS (presneji jadro javascriptu, kde jsou krome jineho treba fce pro praci s retezci, mat. fce apod.) je stejne, zpusob pristupu k castem dokumentu, jejich vlastnostem, nebo metody pro zmeny v dokumentu, ted DOM, jsou uplne jine. Leo
lamatér
Profil *
jinak by na to ani nebyl JS potřeba... šlo by to jen přes css vlastnost
:hover
jako je u odkazů
nejelo by to sice v IE <7 ale jinak všude
vertigo4
Profil
lamatér
hmm, vskutku zajímavý postřeh
Měsíček
Profil
lamatér

Tak to se neboj, (X)HTML a CSS ovládám natolik dobře, abych si udělal vše co chci. Jde mi jen o ten Javascript/DOM, který se chci naučit.

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: