Data Attributes

¿ä¼Ò¿¡ ÀڽŸ¸ÀÇ µ¥ÀÌÅÍ ¼Ó¼ºÀ» ³Ö°í ½ÍÀ»¶§ »ç¿ëÇÑ´Ù.
"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