Egyéni attribútumok a JavaScriptben
A HTML-ben megengedett saját, egyéni
attribútumok hozzáadása a címkékhez. Az ilyen attribútumoknak
data--el kell kezdődniük,
majd bármilyen attribútumnév következhet,
ami számodra kényelmes.
Az egyéni attribútumok rengeteg különböző módon használhatók. Sok ilyen módszert a továbbiakban tanulmányozunk az oktatóanyagban, és még többet találhatsz ki önállóan a jövőben.
Az ilyen attribútumokhoz való hozzáférés nem szabványos
módon történik. Nem lehet egyszerűen hozzáférni az elem azonos nevű
tulajdonságához, ahogy azt korábban tettük,
hanem egy speciális tulajdonságot kell használni
dataset, ami után ponttal
az attribútum neve van írva data- nélkül. Például,
ha az attribútumunk neve data-test,
akkor a hozzáféréshez elem.dataset.test-t írunk,
ahol elem - az elemünket tartalmazó változó.
Nézzünk egy példát. Tegyük fel, hogy a következő elem adott:
<div id="elem" data-num="1000"></div>
Jelenítsük meg a képernyőn a data-num attribútumának értékét:
let elem = document.querySelector('#elem');
console.log(elem.dataset.num); // kiírja 1000-at
És most adjunk ennek az attribútumnak egy másik értéket:
let elem = document.querySelector('#elem');
elem.dataset.num = 123;
Adott a következő kód:
<div id="elem" data-text="str">text</div>
Tegyétek úgy, hogy a div-re kattintva a szöveg
végéhez hozzáadódjon a data-text attribútumának tartalma.
Adottak div-ek, amelyek a data-num attribútumban
tartalmazzák a sorszámukat:
<div data-num="1">text</div>
<div data-num="2">text</div>
<div data-num="3">text</div>
<div data-num="4">text</div>
<div data-num="5">text</div>
Tegyétek úgy, hogy bármelyik div-re kattintva a végéhez íródjon a sorszáma.
Adott egy gomb. Tegyétek úgy, hogy ez a gomb számolja a rá kattintások számát, egy egyéni attribútumba mentve azokat. Legyen, hogy egy másik gombra kattintva a képernyőre kiírjuk, hány kattintás történt az első gombon.
Adott egy input mező:
<input id="elem" data-length="5">
Ebben az input mezőben a data-length attribútum
azt tartalmazza, hány karaktert kell beírni az input mezőbe.
Tegyétek úgy, hogy fókuszvesztéskor,
ha a beírt karakterek száma nem egyezik a megadottal,
akkor erről üzenet jelenjen meg.
Adott egy input mező:
<input id="elem" data-min="5" data-max="10">
Ebben az input mezőben a data-min és
data-max attribútumok egy tartományt tartalmaznak.
Tegyétek úgy, hogy fókuszvesztéskor, ha a beírt
karakterek száma nem esik ebbe a tartományba,
akkor erről üzenet jelenjen meg.