data-*
The data-* ÐлобалÑнÑе аÑÑибÑÑÑ Ð¾Ð±ÑазÑÑÑ ÐºÐ»Ð°ÑÑ Ð°ÑÑибÑÑов, назÑваемÑÑ Ð¿Ð¾Ð»ÑзоваÑелÑÑкими аÑÑибÑÑами даннÑÑ , коÑоÑÑе позволÑÑÑ Ð¾Ð±Ð¼ÐµÐ½Ð¸Ð²Ð°ÑÑÑÑ Ð¿ÑопÑиеÑаÑной инÑоÑмаÑией Ð¼ÐµÐ¶Ð´Ñ HTML и его пÑедÑÑавлением DOM поÑÑедÑÑвом ÑÑенаÑиев.
ÐнÑеÑакÑивнÑй пÑимеÑ
<h1>Secret agents</h1>
<ul>
<li data-id="10784">Jason Walters, 003: Found dead in "A View to a Kill".</li>
<li data-id="97865">
Alex Trevelyan, 006: Agent turned terrorist leader; James' nemesis in
"Goldeneye".
</li>
<li data-id="45732">
James Bond, 007: The main man; shaken but not stirred.
</li>
</ul>
h1 {
margin: 0;
}
ul {
margin: 10px 0 0;
}
li {
position: relative;
width: 200px;
padding-bottom: 10px;
}
li:after {
content: "Data ID: " attr(data-id);
position: absolute;
top: -22px;
left: 10px;
background: black;
color: white;
padding: 2px;
border: 1px solid #eee;
opacity: 0;
transition: 0.5s opacity;
}
li:hover:after {
opacity: 1;
}
ÐÑе Ñакие полÑзоваÑелÑÑкие даннÑе доÑÑÑÐ¿Ð½Ñ ÑеÑез инÑеÑÑÐµÐ¹Ñ HTMLElement ÑлеменÑа, Ð´Ð»Ñ ÐºÐ¾ÑоÑого ÑÑÑановлен аÑÑибÑÑ. СвойÑÑво HTMLElement.dataset пÑедоÑÑавлÑÐµÑ Ðº ним доÑÑÑп.
Символ * Ð¼Ð¾Ð¶ÐµÑ Ð±ÑÑÑ Ð·Ð°Ð¼ÐµÐ½Ñн лÑбÑм именем, ÑооÑвеÑÑÑвÑÑÑим пÑоизводÑÑÐ²ÐµÐ½Ð½Ð¾Ð¼Ñ Ð¿ÑÐ°Ð²Ð¸Ð»Ñ Ð¸Ð¼Ñн xml, Ñо ÑледÑÑÑими огÑаниÑениÑми:
- Ð¸Ð¼Ñ Ð½Ðµ должно наÑинаÑÑÑÑ Ñ xml, в лÑбом ÑлÑÑае Ð´Ð»Ñ ÑÑÐ¸Ñ Ð±Ñкв иÑполÑзÑеÑÑÑ ÑегиÑÑÑ;
- Ð¸Ð¼Ñ Ð½Ðµ должно ÑодеÑжаÑÑ ÑоÑÐºÑ Ñ Ð·Ð°Ð¿ÑÑой (U + 003A);
- Ð¸Ð¼Ñ Ð½Ðµ должно ÑодеÑжаÑÑ Ð·Ð°Ð³Ð»Ð°Ð²Ð½ÑÑ Ð±Ñкв.
ÐбÑаÑиÑе внимание, ÑÑо ÑвойÑÑво HTMLElement.dataset ÑвлÑеÑÑÑ DOMStringMap, и Ð¸Ð¼Ñ Ð½Ð°ÑÑÑаиваемого аÑÑибÑÑа даннÑÑ
data-test-value бÑÐ´ÐµÑ Ð´Ð¾ÑÑÑпно ÑеÑез HTMLElement.dataset. testValue (или HTMLElement.dataset ["testValue"]), поÑколÑÐºÑ Ð»ÑÐ±Ð°Ñ ÑиÑе (U + 002D) заменÑеÑÑÑ Ð·Ð°Ð³Ð»Ð°Ð²Ð½Ð¾Ð¹ бÑквой ÑледÑÑÑей бÑквÑ, пÑеобÑазÑÑ Ð¸Ð¼Ñ Ð² camelcase.
ÐÑполÑзование
ÐобавлÑÑ Ð°ÑÑибÑÑÑ data- *, даже обÑÑнÑе ÑлеменÑÑ HTML могÑÑ ÑÑаÑÑ Ð´Ð¾Ð²Ð¾Ð»Ñно ÑложнÑми и моÑнÑми пÑогÑаммнÑми обÑекÑами. ÐапÑимеÑ, «ÑпÑайÑ» коÑмиÑеÑкого коÑÐ°Ð±Ð»Ñ Ð² игÑе Ð¼Ð¾Ð¶ÐµÑ Ð±ÑÑÑ Ð¿ÑоÑÑÑм ÑлеменÑом <img> Ñ Ð°ÑÑибÑÑом клаÑÑа и неÑколÑкими аÑÑибÑÑами data- *:
<img class="spaceship cruiserX3" src="shipX3.png"
data-ship-id="324" data-weapons="laserI laserII" data-shields="72%"
data-x="414354" data-y="85160" data-z="31940"
onclick="spaceships[this.dataset.shipId].blasted()">
</img>
Ðолее подÑобное ÑÑководÑÑво по иÑполÑÐ·Ð¾Ð²Ð°Ð½Ð¸Ñ Ð°ÑÑибÑÑов даннÑÑ HTML Ñм. Ð Ñазделе Using data attributes.
СпеÑиÑикаÑии
| Specification |
|---|
| HTML > # attr-data-* > |
СовмеÑÑимоÑÑÑ Ñ Ð±ÑаÑзеÑами
СмоÑÑиÑе Ñакже
- All global attributes.
- The
HTMLElement.datasetproperty that allows to access and modify these values. - Using data attributes