¿ä¼Ò¿¡ ÀڽŸ¸ÀÇ µ¥ÀÌÅÍ ¼Ó¼ºÀ» ³Ö°í ½ÍÀ»¶§ »ç¿ëÇÑ´Ù. "data-" ½ÃÀÛÇÏ´Â ¼Ó¼ºÀº À¯Àú µ¥ÀÌÅÍ·Î Ãë±ÞÇÑ´Ù.
»ç¿ë ¹æ¹ýÀº ´ÙÀ½°ú °°´Ù.
HTML¿¡¼
<p id='greeting' data-color='red' data-lang-kr='¾È³ç' data-lang-un='Hi~~' data-lang-jp='ª³ªóªËªÁªÏ'>Hi!!!</p>
CS¿¡¼
#greeting::before {
content: attr(data-lang-kr);
}
#greeting[data-color='red'] {
color: rgb(255, 0, 0);
}
ÀÚ¹Ù½ºÅ©¸³Æ®¿¡¼ Àб⠾²±â
Àбâ
dataset.langKr <-- µÎ¹ø° '-'·Î ½ÃÀ۵Ǵ ¹®ÀÚ´Â ´ë¹®ÀÚ·Î Àû¾îÁà¾ß ÀÛµ¿Çϳ×.
dataset['langJp'] <-- ¿©±âµÎ ±×·¸³×
getAttribute('data-lang-un' );
¾²±â
setAttribute('data-lang-kr', '¹Ý°¡¿ö');
test.html ÆÄÀÏ
<!DOCTYPE HTML>
<html>
<head>
<meta charset="UTF-8">
</head>
<style>
#greeting::before {
content: attr(data-lang-kr);
}
#greeting[data-color='red'] {
color: rgb(255, 0, 0);
}
</style>
<body>
<p id='greeting' data-color='red' data-lang-kr='¾È³ç' data-lang-un='Hi~~' data-lang-jp='ª³ªóªËªÁªÏ'>Hi!!!</p>
<script type='text/javascript' src='main.js'></script>
<script>
window.addEventListener('DOMContentLoaded', function(){
Main.init();
});
</script>
</body>
</html>
main.js ÆÄÀÏ
var Main = (function () {
function init()
{
var element = document.getElementById('greeting');
element.setAttribute('data-lang-kr', '¹Ý°¡¿ö');
element.textContent = element.textContent
+ ' = ' + element.dataset.langKr
+ ' : ' + element.dataset['langJp']
+ ' : ' + element.getAttribute('data-lang-un' );
}
return {
init: init,
};
})();
1. data-lang-kr ¹®ÀÚ¿À» '¹Ý°¡¿ö'·Î ¹Ù²Û´Ù.
element.setAttribute('data-lang-kr', '¹Ý°¡¿ö');
2. ½ºÅ¸ÀÏ beforeÀº content ¾Õ¿¡ µ¥ÀÌÅÍ ¼Ó¼º data-lang-kr = "¹Ý°¡¿ö"¸¦ Ãß°¡ÇÑ´Ù.
#greeting::before {
content: attr(data-lang-kr);
}
Ãß°¡ÇÏ¸é °á°ú´Â "¹Ý°¡¿öHi!!!"ÀÌ´Ù.
3. ÀÌÀü ÅؽºÆ® ³»¿ë : dataset.langKr : dataset.langJp : data-lang-un ¾ð¾îº°·Î Ãâ·ÂÇÑ´Ù.
¹Ý°¡¿öHi!!! = ¹Ý°¡¿ö : ª³ªóªËªÁªÏ : Hi~~
Data Attriubutes querySelector
µ¥ÀÌÅÍ ¼Ó¼ºÀ» querySelector ÇÏ´Â ¹æ¹ýÀº ´ÙÀ½°ú °°´Ù.
let el = document.querySelector('div[data-number=atext]');
¹°·Ð ´ÙÀ½°ú °°ÀÌ Çصµ ÀߵȴÙ.
let el = document.querySelector('[data-number=atext]');
<div id='aaa' data-number='atext'>aaa<div>
<div id='bbb' data-number='btext'>bbb<div>
<script>
window.addEventListener('DOMContentLoaded', function(){
let ela = document.querySelector('div[data-number=atext]');
console.log(ela.id);
let str = 'btext';
let elb = document.querySelector(`div[data-number=${str}]`);
console.log(elb.id); });
</script>
°á°ú)
aaa
bbb
¸¶¿ì½º Ŭ¸¯½Ã À̹ÌÁö »çÀÌÁ 1, 0.5 Å©±â·Î ¹Ýº¹ÇÏ´Â ½ºÅ©¸³Æ® ¿¹Á¦
½ÃÀ۽à À̹ÌÁö »çÀÌÁ 0.5·Î ¸ðµÎ ¹Ù²Û´Ù.
¸¶¿ì½º·Î Ŭ¸¯ÇÑ À̹ÌÁö »çÀÌÁ 1·Î º¯È¯ÇÑ´Ù.
´Ù½Ã ¸¶¿ì½º·Î Ŭ¸¯Çϸé À̹ÌÁö »çÀÌÁ 0.5·Î º¯È¯ÇÑ´Ù.
<script language="JavaScript">
var images = document.getElementsByTagName('img');
for(var i = 0; i < images.length; i++)
{
images[i].style.width = images[i].width/2 + 'px';
images[i].style.height = images[i].height/2 + 'px';
images[i].addEventListener("click", ChangeImageSize.bind(images[i]), false);
images[i].setAttribute('data-imageSize', '0.5');
}
function ChangeImageSize(){
imageSize = this.getAttribute('data-imageSize')
width = this.width;
height = this.height;
if(imageSize == '1')
{
this.setAttribute('data-imageSize', '0.5');
width = width/2;
height = height/2;
}
else
{
this.setAttribute('data-imageSize', '1');
width = width*2;
height = height*2;
}
this.style.width = width + 'px';
this.style.height = height + 'px';
}
</script>
HTML¿¡ "data-" ¼Ó¼ºÀÌ ¾øÀÌ ÀÚ¹Ù ½ºÅ©¸³Æ®¿¡¼ setAttribute ÇÔ¼ö·Î ¸¸µé¾îµµ Àß µÈ´Ù.
images[i].setAttribute('data-imageSize', '0.5');
ÂüÁ¶)
http://developer.mozilla.org/en-US/docs/Learn/HTML/Howto/Use_data_attributes
http://johnresig.com/blog/html-5-data-attributes/
http://ismydream.tistory.com/m/89
http://tonks.tistory.com/147
http://www.google.co.kr/amp/www.bsidesoft.com/%3fp=888&
http://www.w3schools.com/tags/tryit.asp?filename=tryhtml5_global_data
http://www.zerocho.com/category/HTML/post/5a76d1eaabd090001b981ba6
µ¥ÀÌÅÍ ¼Ó¼º querySelector
https://stackoverflow.com/questions/14809528/why-does-js-code-var-a-document-queryselectoradata-a-1-cause-error
|