JavaScript È°¿ëÆÁ
2015.06.03 / 21:53

HTML W3C DOM Node ¿Í IE Node Á¤¸® (1) - ¼Ó¼º ³ëµå±îÁö

IamCoder
Ãßõ ¼ö 290
Ä¿¼­ÀÇ ¿ÀÇÁ¼Â¿¡ °ü·ÃÇÏ¿© IE¿¡¼­ ´Ù½Ã ÀÛ¼ºÇÒ ÇÊ¿ä°¡ ÀÖ´Ùº¸´Ï, Nodeµµ ´Ù½Ã »ìÆ캼°â HTML°ü·ÃÀ¸·Î ÇÑÁ¤ÇÏ¿© °¡º­¿î Á¤¸®¸¦ ÇغÁ¾ß°Ú´Ù. ±âÁ¸ÀÇ HTMLÀÇ ¿ä¼Ò¸¦ Áß½ÉÀ¸·Î »ý°¢ÇßÀ¸¸é, ÀÌ·¯ÇÑ ³ëµå ´ÜÀ§ »ç°í´Â º¸´Ù Àú¼öÁØÀÇ ÀÛÀº ´ÜÀ§·Î ÂÉ°³ º¸´Â °ÍÀ̸ç, ¶§·Î´Â À¯¿ëÇÒ ¼ö ÀÖÀ¸³ª ¶Ç´Â ¹øÀâÇÒ ¼öµµ ÀÖ´Ù. ±×·¯³ª ÇØ°áÄ¡ ¸øÇÑ °ÍÀÇ ½Ç¸¶¸®´Â ³ëµå¿¡¼­ ã¾Æº¼ ¼ö ÀÖ´Ù. 

HTML¿¡¼­ ÇϳªÀÇ ¿ä¼Ò´Â ³»ºÎÀÇ ¿©·¯ ¿ä¼Ò¸¦ Æ÷ÇÔ½Ãų ¼ö ÀÖ´Ù. ±âÁ¸ÀÇ HTML ¹®¼­ ÀÛ¼ºÀ̳ª jQueyr³ª Prototype ¹× Dojo µîÀ» ÀÌ¿ëÇÏ¿´´Ù¸é ½±°Ô Á÷Á¢ Node¸¦ ÀÌ¿ëÇÒ ÇÊ¿ä¾øÀÌ ¸¹Àº °ÍÀ» °£´ÜÈ÷ ÇØ°áÇÒ ¼ö ÀÖÀ¸³ª, À̵éÀº ¿ä¼Ò Áß½ÉÀ¸·Î ÀÛ¼ºµÇ¾ú±â¿¡ ±×º¸´Ù »ó¼¼È÷ ´Ù·ç¶§ ³ëµå¸¦ ²¨³»ºÁ¾ß ÇÒ °ÍÀÌ´Ù.

[Àç·á¸ðÀ½]

  * MSDN : About the W3C Document Object Mode  
  * MDN : https://developer.mozilla.org/en/DOM/Node
  * W3C DOM L1 Core,  W3C DOM L2 Core, W3C DOM L3 Core


[¿¬½À : HTML div ¿ä¼ÒÀÇ ÀÚ½Ä node °¹¼ö ¼¼±â]

1
2
3
4
5
6
7
8
9
10
11
12
13
<div id="node-exam1">
hello,
<b>world</b>
: demo
<!-- ÁÖ¼® -->
<h1>ÇÏÀÌ</h1>
<script>
/* <![CDATA[ */
document.write('hello<br/>');
document.write('bonjour');
/*]]>*/ 
</script>
</div>
"node-exam1"ÀÇ id¸¦ °¡Áø div¿ä¼Ò´Â ¸î °³ÀÇ ÀÚ½Ä ³ëµå¸¦ °¡Áú±î? ¿¬½À°â Çѹø ¼¼º¸ÀÚ. IE´Â ÀÚü ºê¶ó¿ìÀú¿¡¼­ Á¦°øÇÏ´Â TextRange¿¡¼­ character·Î À̵¿½ÃÅ°°Å³ª ¿©±â¼­ ¿ÀÇÁ¼ÂÀ» ã¾Æ³»·Á¸é, ÀÏ´Ü Áö¿øÇÏ´Â °ÍÀÌ ¾ø±â¿¡ »õ·Î ¸¸µé¾î¾ß ÇÑ´Ù. À̶§ node¸¦ »ìÆ캸¾Æ °è»êÀ» ÇÒ ¼ö ÀÖ´Ù. À̸¦ À§ÇØ ¿ì¼± node¿¡ °üÇؼ­ Á»´õ »ìÆ캸¾Æ¾ß°Ú´Ù. À§ÀÇ ÀÚ½Ä ³ëµå¸¦ ¼¼±â ¾î·Æ´Ù¸é ´ÙÀ½À» »ìÆ캸ÀÚ.  
1
<span>hello,<b>world<b/>!!!</span>
À§ÀÇ spanÀº 3°³ÀÇ ÀÚ½Ä node¸¦ °®´Â´Ù.

  - text Çü½ÄÀÇ ³ëµå : "hello"¸¦ °ªÀ¸·Î °®´Â´Ù.
  - Element Çü½ÄÀÇ ³ëµå : ¿ä¼Ò "<b> "ű×ÀÌ´Ù. ¶Ç ³»ºÎ¿¡ ÅؽºÆ® Çü½ÄÀÇ ÀÚ½Ä ³ëµå¸¦ °®°í ÀÖ´Ù.
  - text Çü½ÄÀÇ ³ëµå : "!!!'¸¦ °ªÀ¸·Î °®´Â´Ù.

¸¸ÀÏ ¸¶Áö¸·ÀÇ "!!!"¹®ÀÚ¿Í ÇÔ²² ºó°ø°£ÀÌ ¾øÀÌ </span>¿ä¼Ò·Î ¸¶°¨ÀÌ µÈ´Ù¸é spanÀº 2°³ÀÇ ÀÚ½Ä ³ëµå°¡ °®°Ô µÈ´Ù. º¸Åë ÄÚµåÀÇ °¡µ¶¼ºÀ» À§ÇØ °³ÇàÀ» »ç¿ëÇϴµ¥ Çϳª¶óµµ ÅÇ µî ºó Ä­ÀÌ µé¾î°¡Áø´Ù¸é º¸ÀÌ´Â °Í°ú ´Þ¸® ÅؽºÆ® ³ëµå·Î À̸¦ ´Ù·é´Ù. (±×·¯´Ï±î ù ¿¹Á¦ÀÇ Äڵ忡¼­ 5Çà°ú 6Çà»çÀÌ,  6Çà°ú 7Çà»çÀÌ¿¡´Â ÇÑ°³ÀÇ °³Çà°ú ÅÇÀ¸·Î ÀÌ·ç¾îÁø ÅؽºÆ® Çü½ÄÀÇ ³ëµå°¡ ÀÖ´Â °ÍÀÌ´Ù.)

±×·¸´Ù¸é À§ÀÇ Ã¹ ¿¹Á¦¸¦ È®ÀÎÇϸé, ÃÑ 11°³ÀÇ ÀÚ½Ä ³ëµå¸¦ °®´Â °ÍÀ» ¼¿ ¼ö ÀÖ´Ù. ÁÖ¼®µµ ÇÑ°³ÀÇ ³ëµå·Î ÀνÄÇÑ´Ù. ³ëµå¸¦ »ç¿ëÇÏ¿© Á¢±ÙÀ» ÇÏ¸é º¸´Ù ÇÏÀ§ ¼öÁØÀ¸·Î ¿ä¼Ò ¹× ±× ³»¿ëÀ» ´Ù·ê ¼ö ÀÖ´Ù´Â Á¡ÀÌ ÀåÁ¡À̸ç ÁÖ¼®ÀÇ ³»¿ë±îÁö ¹Þ¾Æ¿Ã ¼ö ÀÖ´Ù. (´Ü, IE8ÀÌÇÏ´Â ÁÖ¼®À» ³ëµå·Î ¹ÞÁö ¸øÇÑ´Ù. °¹¼ö¿¡¼­ Á¦¿ÜµÈ´Ù.)  ¶ÇÇÑ »ðÀÔµÈ ½ºÅ©¸³Æ®¿¡¼­ document.write·Î Ãß°¡µÈ ÅؽºÆ® ³ëµå´Â </script>´ÙÀ½¿¡ Ãß°¡µÇ´Â °Íµµ È®ÀÎÇØ ³õÀÚ. ±×¸®°í scriptű׿¡¼­ CDATA ºÎºÐÀº ÀÚ½ÄÀÇ text³ëµå¿¡¼­ °ªÀ¸·Î ÀâÈ÷Áö ¾Ê´Â´Ù. À̶§ ±×Àú "/* */"¸¸À» ¹ÝȯÇÒ »ÓÀÌ´Ù. 

[nodeÀÇ ºÐ·ù]

³ëµå Çü½ÄÀº 12Á¾À¸·Î ºÐ·ùÇÒ ¼ö ÀÖÀ¸³ª, HTML¿¡¼­ ´Ù·ê °ÍÀº °íÀÛ ¸î°³ ¾ÈµÈ´Ù. 

nodeTypeºÐ·ùnodeNamenodeValue»ó¼ö
1Element¿ä¼Ò¸ínullELEMENT_NODE
2Attr¼Ó¼º¸í¼Ó¼º°ªATTRIBUTE_NODE
3Text#text ÄÁÅÙÆ® ³ëµåTEXT_NODE
4CDATASection#cdata-sectionÄÁÅÙÆ® ³ëµåCDATA_SECTION_NODE
5EntityReferenceentity reference À̸§nullENTITY_REFERENCE_NODE
6Entityentity À̸§nullENTITY_NODE
7ProcessingInstructiontargetÄÁÅÙÆ® ³ëµåPROCESSING_INSTRUCTION_NODE
8Comment#commentÁÖ¼® ÅؽºÆ®COMMENT_NODE
9Document#documentnullDOCUMENT_NODE
10DocumentTypedoctype À̸§nullDOCUMENT_TYPE_NODE
11DocumentFragment#document fragmentnullDOCUMENT_FRAGMENT_NODE
12Notationnotation À̸§nullNOTATION_NODE

¿©±â¼­ nodeType, nodeName, nodeValue´Â ÇÁ·ÎÆÛƼ·Î ³ëµå¿¡ µû¶ó ÁöÁ¤µÈ °ªÀ» ¹ÝȯÇÑ´Ù. nodeTypeÀ» ÀÌ¿ëÇÏ¿© ³ëµåÀÇ Á¾·ù¸¦ È®ÀÎÇÒ ¼ö ÀÖÀ¸¸ç, nodeNameÀ» ÀÌ¿ëÇÏ¿© ¿ä¼ÒÀÎ °æ¿ì ű׸íÀ» ¹Ýȯ¹ÞÀ» ¼ö ÀÖ´Ù. ±âŸ #À¸·Î ½ÃÀÛÇÏ´Â °ÍÀº ÇØ´ç ¹®ÀÚ¿­·Î Ç׽à ¹ÝȯÇÏ¿© Çü½Ä °Ë»ç·Î ¾µ ¼öµµ ÀÖÀ¸³ª ÁÁÀº »ý°¢Àº ¾Æ´Ï¸ç nodeTypeÀÇ Á¤¼ö¸¦ ¾²´Â °ÍÀÌ ÁÁ´Ù. nodeValueµµ ÇØ´ç ³ëµåÀÇ °ªÀ» ¹ÝȯÇÑ´Ù. nodeTypeÀÌ Á¤¼ö·Î ¹ÝȯÇÏ´Â °Í¿¡ ºñÇØ ¹®ÀÚ¿­ »ó¼ö¸¦ ÀÌ¿ëÇÏ¿© Çü½ÄÀ» °Ë»çÇÒ ¼öµµ ÀÖÀ¸³ª, ±¸Çü IE ºê¶ó¿ìÀú´Â À̸¦ Áö¿øÇÏÁö ¸øÇÑ´Ù.

 - node.nodeType
 - node.nodeName : ¿ä¼ÒÀÎ °æ¿ì, ´ë¹®ÀÚ ¿ä¼Ò¸íÀ¸·Î ¹Ýȯ(Å©·Ò, FF, IE µî ¸¶Âù°¡Áö)
 - node.nodeValue 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
<div id="text_type_node">
Hello,<b>world</b>!!!
</div>
<script>
var _node_type_elem = document.getElementById('text_type_node');
document.write(_node_type_elem.nodeType); // 1
document.write(_node_type_elem.nodeName); // div
document.write(_node_type_elem.nodeValue); // null
  
var _node_type_elem_firstChild = _node_type_elem.firstChild;
document.write(_node_type_elem_firstChild.nodeType); // 3
document.write(_node_type_elem_firstChild.nodeName); // #text
document.write(_node_type_elem_firstChild.nodeValue); // Hello,
</script>
HTML¿¡¼­ ¾Æ¸¶ ¿©±â ÁÖÁ¦´Â 1¹øŸÀÔÀÇ Element ¿Í 3¹øÀÇ Å¸ÀÔÀÇ text¿¡ ÇÑÇؼ­ ½Å°æÀ» ¾µ °Í °°´Ù.

[nodeÀÇ »ý¼º]

 - document.createElement('¿ä¼Ò¸í')
 - document.createAttribute('¼Ó¼º¸í')
 - document.createTextNode('ÅؽºÆ® ³ëµå ³»¿ë')
 - document.createCDATASection('CDATA ³»¿ë')
 - document.createComment('ÁÖ¼® ³»¿ë')

[nodeÀÇ °ü°è À̵¿ ¹× Á¢±Ù]

³ëµåÀÇ Á¾·ù¸¦ ¾Ë¾ÒÀ¸¸é ¾î¶°ÇÑ °ÍÀÌ ³ëµåÀÎÁö ¾Ë¾ÒÀ» °ÍÀÌ´Ù. ±âÁ¸ÀÇ ±×Àú ÇϳªÀÇ ¿ä¼Ò·Î »ý°¢Çß´ø °ÍÀº ³ëµå·Î »ý°¢Çؼ­ º¸¸Õ, ´ëºÎºÐÀÇ ÅؽºÆ®¸¦ ³Ö±â À§ÇØ »ç¿ëÇÏ´Â ¿ä¼Ò´Â ÀÚ½ÅÀÇ ³ëµå¿Í ³»ºÎ¾Ö ÅؽºÆ® Çü½Ä ÀÚ½Ä ³ëµå¸¦ ÀÚµ¿ÀûÀ¸·Î °®°Ô µÇ´Â °ÍÀ» ¾Ë ¼ö ÀÖÀ» °ÍÀÌ´Ù. ¶ÇÇÑ HTML ¿ä¼ÒÀÇ »ó´ç¼ö´Â ´Ù¸¥ ¿ä¼Ò¸¦ ³»ºÎ¿¡ Æ÷ÇÔ½Ãų ¼ö ÀÖÀ¸¸ç, À̶§ÅؽºÆ® ³ëµå¿Í ´ëµîÇÑ ³ëµå·Î À§Ä¡ÇÏ°Ô µÇ±âµµ ÇÑ´Ù. ÅؽºÆ® ³ëµå´Â ¾î¶°ÇÑ Àڽĵµ °®À» ¼ö ¾ø´Â ³ëµå¶ó´Â Ư¡ÀÌ ÀÖ´Â °Íµµ °°ÀÌ È®ÀÎÇØ µÎÀÚ. ÀÌÁ¦ ³ëµå ¼öÁØ¿¡¼­ ³ëµå°£ÀÇ °ü°è¿Í ±×¿¡ µû¸¥ À̵¿À» Á¤¸®ÇÏ°Ú´Ù. 

- node.parentNode
- node.parentElement
- node.ownerDocument : Çö ¹®¼­ÀÇ document °´Ã¼°¡ µÈ´Ù. 
- document.documentElement : ´ë°³ html ¹®¼­¿¡¼­´Â htmlÀÌ µÈ´Ù.

- node.childNodes : ¹è¿­ Çü½Äó·³ ¹Ýȯ. length ÇÁ·ÎÆÛƼ¸¦ »ç¿ëÇÒ ¼ö ÀÖÀ¸¸ç, index¸¦ ÅëÇØ °³º° ¿ä¼Ò¿¡ Á¢±Ù
node.childNodes[index]
node.childNodes.length
- node.firstChild
- node.lastChild

- node.previsousSibling
- node.nextSibling
 
siblingÀº ´Ù¸¥ µ¿À§ÀÇ ÀÌÀü ¹× ÀÌÈÄÀÇ ³ëµå¸¦ ¹ÝȯÇÑ´Ù. ÇÁ·¹ÀÓ¿öÅ©¿¡¼­ next³ª previous¸Þ¼­µå°¡ ÀÌ siblingÀ» ÀÌ¿ëÇÑ °ÍÀÌ´Ù. ¿ä¼Ò°£ÀÇ À̵¿Àº ´ÙÀ½°ú °°Àº Äڵ尡 µÈ´Ù.  [Ãâó : The Watchmaker Project ] 
1
2
3
4
5
function previous(p) {
  do p = p.previousSibling;
  while (p && p.nodeType != 1);
  return p;
¶ÇÇÑ nextSiblingÀ» ÀÌ¿ëÇÏ¿© insertAfterµµ ¸¸µé ¼ö ÀÖ´Ù. À̶§ nextSibling ³ëµåÀÇ Á¸Àç ¿©ºÎ¿¡ µû¶ó º»·¡ ¸¶Áö¸· ³ëµåÀÎÁö È®ÀÎÇÒ ¼ö ÀÖ°í ¾ø´Â °æ¿ì, apendChild¸¦ ÀÌ¿ëÇÏ¸é µÉ °ÍÀÌ´Ù. ¿ä¼Ò°£ÀÇ À̵¿¿¡ Àû¿ëÇÏ·Á¸é ¸¶Âù°¡Áö·Î while¹®À¸·Î ŸÀ԰˻縦 ÇÏ¸é µÉ °ÍÀÌ´Ù.   

°ü·Ã ¸Þ¼­µå·Î´Â ´ÙÀ½°ú °°Àº °ÍÀÌ ÀÖ´Ù.

Node.hasChildNodes() : ÀÚ½Ä ³ëµå¸¦ °®´ÂÁö Boolean °ªÀ¸·Î ¹Ýȯ
- node1.contains(node2) : node2°¡ node1¿¡ Æ÷ÇÔ¿©ºÎ¸¦ Boolean °ªÀ¸·Î ¹Ýȯ


  [nodeÀÇ ÆíÁý]

- node1.appendChild(node2) : node1¿¡ ÀÚ½Ä ³ëµå·Î node2¸¦ ¸¶Áö¸·À¸·Î Ãß°¡
node1.removeChild(node2) : node1¿¡ ÀÚ½Ä ³ëµåÀÎ node2¸¦ Á¦°Å
- node1.replaceChild(node2, node3) : node1ÀÇ ÀڽijëµåÀÎ node3À» node2·Î ±³Ã¼
- node1.insertBefore(node2, node3) : node1ÀÇ ÀڽijëµåÀÎ node3 ¾Õ¿¡ node2¸¦ Ãß°¡
  
appendChild°¡ Á¦ÀÏ ¸¶Áö¸·¿¡ Ãß°¡µÇ´Â ¹Ý¸é Á¦ÀÏ ¾Õ¿¡ Ãß°¡ÇÏ°íÀÚ ÇÑ´Ù¸é insertBefore¸¦ ÀÌ¿ëÇÏ¸é µÈ´Ù. 
1
node1.insertBefore(node2, node1.childNode[0]); 

ÇÁ·ÎÆÛƼ ¼³Á¤À¸·Î  ÄÁÅÙÃ÷¸¦ º¯°æÇϰųª ¹Ýȯ¹ÞÀ» ¼ö ÀÖ´Ù.

- ElementNode.innerHTML : ű׸¦ Æ÷ÇÔµÈ ³»¿ëÀ» ¹Ýȯ ¹× ¼³Á¤ °¡´É
ElementNode.textContent : Çö ¿ä¼Ò ³»ºÎÀÇ ÅؽºÆ® ³ëµå ¹Ýȯ ¹× ¼³Á¤ (ÁÖÀÇ, script ¹× style ¿ä¼Òµµ text ³ëµå¸¦ °¡Áü IE9ÀÌ»ó)
Node.textContent : ÇØ´ç ³ëµåÀÇ text ¼³Á¤ ¹× ¹Ýȯ (IE9 ÀÌ»ó)
ElementNode.innerText : IE¿¡¼­ Áö¿øµÇ´Â ÅؽºÆ® ¼³Á¤ ¹× ¹Ýȯ (textContent Â÷ÀÌ°¡ ÀÖÀ½)


[attribute ³ëµå Çü½Ä ]

 ¼Ó¼ºµµ ¸¶Âù°¡Áö·Î ³ëµå·Î ´Ù·ê ¼ö ÀÖ´Ù. ´Ù¸¸ ¼Ó¼º ³ëµå·Î Á÷Á¢ ´Ù·ê °æ¿ì ±¸Çü IE ºê¶ó¿ìÀú Áö¿øÀº °¢ÀÚ Â÷ÀÌ°¡ ÀÖ¾î ÁÖÀÇ°¡ ÇÊ¿äÇÏ´Ù. HTML¿¡¼­ °¢ ¿ä¼Ò¿¡ ¼³Á¤µÈ ¼Ó¼ºÀº attribute ³ëµå¸¦ ÀÌ¿ëÇÒ ¼ö ÀÖ´Ù.
1
var attrNodeCollection = document.getElemenstByTagName('div')[0].attributes; 

¼Ó¼º ³ëµå´Â "node.attributes"¸¦ ÅëÇØ ¹Ýȯ¹ÞÀ» ¼ö ÀÖÀ¸³ª ÀÌ ÀÚü°¡ ¼Ó¼º ³ëµå°¡ ¾Æ´Ï¸ç, °³º° ÀûÀÎ ¼Ó¼º ³ëµå¸¦ °¡Áø ¹è¿­ À¯»ç Çü½ÄÀÇ °´Ã¼ÀÌ´Ù. ´Ù½Ã ¸»ÇØ "node.attributes"´Â ¼Ó¼º ³ëµå´Â ¾Æ´Ï³ª, "node.attributes[0]"Àº ¼Ó¼º Çü½ÄÀÇ ³ëµå¶ó´Â °ÍÀÌ´Ù.

¶ÇÇÑ °³º° ¼Ó¼º ³ëµå¿¡¼­ nodeValue·Î °ªÀ» È®ÀÎÇÒ ¼ö ÀÖ´Ù.  ¿©±â¿¡ °³º° ¼Ó¼º ³ëµå´Â textÇü½ÄÀÇ ÀÚ½Ä ³ëµå¸¦ °¡Áö°Ô µÇ´Âµ¥, ¿©±â¿¡ ÇØ´ç ¼Ó¼ºÀÇ °ªÀ» °®°í ÀÖ´Ù. ÀÌ·¯ÇÑ Á¡À» È®ÀÎÇÏ¸é ´ÙÀ½°ú °°´Ù. 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
<div id="_attrNode" class="textClass" style="border-bottom:1px solid #eee"
    Hello, World 
</div>
  
<script>
var attrNodeCollection = document.getElementById("_attrNode").attributes;
  
attrNodeCollection.length; // 3 
attrNodeCollection.nodeType // undefined - 'attributes' ÀÚü´Â ³ëµå°¡ ¾Æ´Ï´Ù.
  
attrNodeCollection[0].nodeType // 2 - ¼Ó¼º ³ëµå Çü½ÄÀÇ °ª
attrNodeCollection[0].nodeName // id - ¼Ó¼º¸í
attrNodeCollection[0].nodeValue // _attrNode - ÇØ´ç ¼Ó¼ºÀÇ °ª
  
attrNodeCollection[0].hasChildNodes() // true - ÀÚ½ÄÀ» °¡Áö°í ÀÖ´Ù.
attrNodeCollection[0].childNodes.length // 1 - 1°³ÀÇ ÀÚ½ÄÀ» º¸À¯
attrNodeCollection[0].childNodes[0].nodeType // 3 - text Çü½ÄÀÇ ³ëµå
attrNodeCollection[0].childNodes[0].nodeName // #text - ¿ª½Ã text Çü½ÄÀÇ ³ëµåÀÓÀÌ È®ÀεÊ
attrNodeCollection[0].childNodes[0].nodeValue  // _attrNode - ÇØ´ç text ³ëµåÀÇ °ª
  
attrNodeCollection[0].nodeValue === attrNodeCollection[0].childNodes[0].nodeValue // true
</script> 
ÀÌ¿¡ ±¸Çü IE ºê¶ó¿ìÀú´Â ´ÙÀ½°ú °°Àº ¹®Á¦/Â÷ÀÌ °¡ ÀÖ´Ù.

  -  IE9±îÁö´Â À妽º°¡ ÀÛ¼º ¼ø¼­¿Í º°°³·Î ÁöÁ¤µÈ´Ù.
  -  IE8±îÁö´Â ¼Ó¼ºÀÇ °ªÀ» °¡Áø  text Çü½ÄÀÇ ÀÚ½Ä ³ëµå°¡ Æ÷ÇԵǾî ÀÖÁö ¾Ê´Ù.
  -  IE7±îÁö´Â node.attributes´Â ÇØ´ç ¿ä¼ÒÀÇ Àüü ¼Ó¼ºÀ» ´ë»óÀ¸·Î index¸¦ ¸¸µç´Ù. (DIVÀÎ °æ¿ì 82°³)

°³º° attr ³ëµå Á¢±Ù ¹× ÆíÁý

- node.attributes[index]
- node.attributes.item(index)
- node.attributes.getNamedItem("¼Ó¼º¸í')
- node.attributes.setNamedItem(node) : node·Î ¼³Á¤ÇÔ¿¡ ÁÖÀÇ
- node.attributes.removeNamedItem("¼Ó¼º¸í'")

°³º° ¼Ó¼ºÀÇ °ªÀÇ È®ÀÎ

node.attributes['index'].nodeValue
- elementNode.attributes.¼Ó¼º¸í.value
elementNode.attributes['¼Ó¼º¸í'].value
elementNode.attributes['index'].value
elementNode.getAttribute('¼Ó¼º¸í')

°³º° ¼Ó¼ºÀÇ °ªÀÇ ¼³Á¤

node.attributes['index'].nodeValue = ¼³Á¤ °ª
elementNode.attributes.¼Ó¼º¸í.value = ¼³Á¤ °ª
elementNode.attributes['¼Ó¼º¸í'].value = ¼³Á¤ °ª
elementNode.attributes['index'].value = ¼³Á¤ °ª
elementNode.setAttribute('¼Ó¼º¸í'. '¼³Á¤ °ª')
node.setAttributeNode(attribute node)
  
°ü·Ã ¸Þ¼­µå

- node.hasAttributes() : 1°³ ÀÌ»ó ¼³Á¤µÈ ¼Ó¼ºÀÌ ÀÖ´ÂÁö BooleanÀ¸·Î ¹Ýȯ, IE9ÀÌ»ó Áö¿ø
elementNode.getAttribute('¼Ó¼º¸í')
elementNode.setAttribute('¼Ó¼º¸í'. '¼³Á¤ °ª')

HTML ¹®¼­ÀÇ ¼Ó¼ºÀ» IE¿¡¼­ ³ëµå Â÷¿øÀ̳ª, setAttributeµîÀÇ ¸Þ¼­µå »ç¿ëÀ¸·Î °ªÀÇ ¼³Á¤À̳ª º¯°æ½Ã Á¾Á¾ ¹ö±×°¡ ÀÖ¾î È®ÀÎÀÌ ÇÊ¿äÇÏ´Ù.