Карыстацкія атрыбуты ў JavaScript
У HTML дазволена дадаваць свае, карыстацкія
атрыбуты тэгам. Такія атрыбуты павінны пачынацца
з data-, а затым павінна ісці любая
назва атрыбута, якая вам зручная.
Карыстацкія атрыбуты могуць быць выкарыстаны вялізнай колькасцю розных спосабаў. Многія з гэтых спосабаў мы вывучым далей у дапаможніку, а яшчэ больш вы зможаце ў далейшым вынайсці самастойна.
Зварот да такіх атрыбутаў уладкована не стандартным
чынам. Нельга проста звярнуцца да аднайменнай
уласцівасці элемента, як мы рабілі гэта раней,
а варта выкарыстоўваць спецыяльную ўласцівасць
dataset, пасля якой праз кропку
пішацца імя атрыбута без data-. Напрыклад,
калі наш атрыбут называецца data-test,
то для звароту да яго мы будзем пісаць elem.dataset.test,
дзе elem - пераменная з нашым элементам.
Давайце паглядзім на прыкладзе. Хай у нас дадзены вось такі элемент:
<div id="elem" data-num="1000"></div>
Вывядзем на экран значэнне яго атрыбута data-num:
let elem = document.querySelector('#elem');
console.log(elem.dataset.num); // выведзе 1000
А цяпер прысвоім гэтаму атрыбуту іншае значэнне:
let elem = document.querySelector('#elem');
elem.dataset.num = 123;
Дадзены наступны код:
<div id="elem" data-text="str">text</div>
Зрабіце так, каб па кліку на дыў у канец
яго тэксту дадалася змесціва яго атрыбута
data-text.
Дадзены дывы, якія змяшчаюць у атрыбуце data-num
свой парадкавы нумар:
<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>
Зрабіце так, каб па кліку на любы з дываў яму ў канец запісваўся яго парадкавы нумар.
Дадзена кнопка. Зрабіце так, каб гэтая кнопка лічыла колькасць клікаў па ёй, запісваючы іх у які-небудзь карыстацкі атрыбут. Хай па кліку на іншую кнопку на экран выводзіцца, колькі клікаў было зроблена па першай кнопцы.
Дадзены інпут:
<input id="elem" data-length="5">
У гэтым інпуце ў атрыбуце data-length
змяшчаецца колькасць сімвалаў, якую трэба
ўвесці ў інпут. Зрабіце так, каб па страце
фокусу, калі колькасць уведзеных сімвалаў
не супадае з зададзенай, выводзілася паведамленне
пра гэта.
Дадзены інпут:
<input id="elem" data-min="5" data-max="10">
У гэтым інпуце атрыбуты data-min і
data-max змяшчаюць дыяпазон. Зрабіце
так, каб па страце фокусу, калі колькасць
уведзеных сімвалаў не трапляе ў гэты дыяпазон,
выводзілася паведамленне пра гэта.