2009”N09ŒŽ28“ú

DOMiDocument Object Modelj‚ÌŠî–{

ƒXƒ|ƒ“ƒT[ƒh@ƒŠƒ“ƒN

 DOMiDocument Object Modelj‚Æ‚Í

JavaScript‚̂悤‚ȃvƒƒOƒ‰ƒ~ƒ“ƒOŒ¾Œê‚©‚çC
HTML/XML•ï¿½ï¿½‘‚ɃAƒNƒZƒX‚µ‚Ä ‚»‚ê‚𑀍삷‚é•û–@‚ð’ñ‹Ÿ‚µ‚��‚Ü‚·B

DOM‚ł́AHTML/XML•ï¿½ï¿½‘‚Ì‚·‚�~‚Ä‚Ì—v‘f‚̓m[ƒh‚ƌĂ΂ê‚éƒIƒuƒWƒFƒNƒg‚©‚ç\ï¿½ï¿½‚³‚ê‚��‚Ü‚·B
‚�}‚̃m[ƒh‚͂��‚­‚‚©‚ ‚è‚Ü‚·‚ª
—v‘fƒm[ƒh (element node)AƒeƒLƒXƒgƒm[ƒh (text node)A‘®«ƒm[ƒh (attribute node)‚Ì
‚Rƒc‚̃m[ƒh‚ªŠî–{‚Å‚·B

DOM‚ÆjavaScript‚ÌŠÖ˜A‚ɂ‚��‚Ä‚ÍThe DOM and JavaScript ‚ðŽQl‚É‚µ‚Ä‚­‚¾‚³‚��B

ƒƒŠƒ|ƒbƒvI‚Ȃ珉SŽÒ‚Å‚àˆÀSI
ƒz[ƒ€ƒy[ƒWŠÈ’Pìï¿½ï¿½@uƒzƒ€ƒyƒƒŠIvAuwoopa!v
CGIŠÈ’PÝ’u@uCGI CANDYBOX!v‚ª–³—¿‚ÅŽg‚¦‚Ü‚·II


 ƒhƒLƒ…ƒƒ“ƒgƒcƒŠ[(DOMƒcƒŠ[)

<p align="left">‚�}‚ꂪDOMƒcƒŠ[‚̍\‘��‚Å‚·B</p>

ã‹L‚Ìhtml ‚Å‚Í
<p>ƒ^ƒO‚ª—v‘fƒm[ƒhAiŠÈ’P‚ÉŒ¾‚¦‚ÎHTML‚̃^ƒO‚̂�}‚Æ‚Å‚·j
<p>ƒ^ƒO‚Ɉ͂܂ꂽ•ï¿½ï¿½Žš—ñ  "‚�}‚ꂪDOMƒcƒŠ[‚̍\‘��‚Å‚·B" ‚ªƒeƒLƒXƒgƒm[ƒh‚Å‚·B
align="left"‚ª‘®«ƒm[ƒh‚É‚È‚è‚Ü‚·B
DOMƒcƒŠ[‚ł͕��Žš—ñ‚»‚Ì‚à‚Ì‚ªˆêƒc‚̃m[ƒh‚É‚È‚è‚Ü‚·B

‚�}‚ê‚ðDOMƒcƒŠ[‚Å•\‚·‚Ɖº}‚̂悤‚É‚È‚è‚Ü‚·B

—v‘fƒm[ƒh(eƒm[ƒh)parentNode
 <p>
 „\„Ÿ„Ÿ ƒeƒLƒXƒgƒm[ƒh(Žqƒm[ƒh)childNodes[0]
 „ @@@ "‚�}‚ꂪDOMƒcƒŠ[‚̍\‘��‚Å‚·B"
 „ 
 „¤„Ÿ„Ÿ <p>‚Ì‘®«ƒm[ƒh
@@@@@   align="left"

  —v‘fƒm[ƒh <p>‚ªƒeƒLƒXƒgƒm[ƒh "‚�}‚ꂪDOMƒcƒŠ[‚̍\‘��‚Å‚·B"‚̐eƒm[ƒh‚Å‚·B
‹t‚É‚Ý‚é‚ƁA‚�}‚̃eƒLƒXƒgƒm[ƒh‚Í—v‘fƒm[ƒh <p>‚ÌŽqƒm[ƒhchildNodes[0]‚É‚È‚è‚Ü‚·B
‘®«ƒm[ƒh‚ÍŽqƒm[ƒh‚É‚È‚è‚Ü‚·‚ªAŽqƒm[ƒh‚Æ‚µ‚Ĉµ‚í‚ê‚Ü‚¹‚ñB

’*  ‚�}‚�}‚ł͐eƒm[ƒh<p>‚Æ‚µ‚��‚Ü‚·‚ªŽÀ‚͐e‚Æ‚µ‚Äbody ƒ^ƒO‚ª‚ ‚è‚Ü‚·‚µA‘¼‚Ì—v‘f‚ª‚ ‚é‚�}‚Æ‚à‚ ‚è‚Ü‚·B
   ‚�}‚Ì—á‚ł̓cƒŠ[‚Í”ñí‚ÉŠÈ’P‚Å‚·‚ªŽÀÛ‚ÌHTML•ï¿½ï¿½‘‚Í‚½‚­‚³‚ñ‚̃m[ƒh‚©‚ç\ï¿½ï¿½‚³‚ê‚��‚Ü‚·B
  ˆê”Ô–Ú‚ÉŒ»‚ꂽŽqƒm[ƒh‚ÍchildNodes[0]A“ñ”Ô–Ú‚ÍchildNodes[1]\\\\[2]A[3]‚Æ‚È‚è‚Ü‚·B


<p>ƒ^ƒO‚É id‘®«‚ð•t‚¯A‚ЂƂƒ^ƒO‚ð“ü‚êŽq‚É‚µ‚Ä‚Ý‚Ü‚µ‚½B

<p align="left" id="smp">‚�}‚ꂪ<strong>DOMƒcƒŠ[</strong>‚̍\‘��‚Å‚·B</p>

‚�}‚ꂪDOMƒcƒŠ[‚̍\‘��‚Å‚·B

eƒm[ƒh<p>ƒ^ƒO‚É‚ÍŽqƒm[ƒh‚Å‚ ‚éA‚Q‚‚̃eƒLƒXƒgƒm[ƒh‚Æ
‚P‚‚̗v‘fƒm[ƒh‚ªÝ‚è‚Ü‚·B‚³‚ç‚ɂ�}‚Ì—v‘fƒm[ƒh‚É‚Í‚P‚‚̎qƒm[ƒh‚ª‚ ‚è‚Ü‚·B

—v‘fƒm[ƒh(eƒm[ƒh)parentNode
<p>
 „\„Ÿ„Ÿ ƒeƒLƒXƒgƒm[ƒh(Žqƒm[ƒh)childNodes[0] 
 „ @@@ "‚�}‚ꂪ"
 „ @
 „\„Ÿ„Ÿ —v‘fƒm[ƒh(Žqƒm[ƒh)childNodes[1]
 „ @@@<strong>
 „         „ @@@@ 
 „         „¤„Ÿ„Ÿ ƒeƒLƒXƒgƒm[ƒh(Žqƒm[ƒh)childNodes[1].childNodes[0]
 „ @@@              "DOMƒcƒŠ["
 „ 
 „\„Ÿ„Ÿ ƒeƒLƒXƒgƒm[ƒh(Žqƒm[ƒh)childNodes[2]
 „ @@@ "‚̍\‘��‚Å‚·B"
 „ 
 „¤„Ÿ„Ÿ <p>‚Ì‘®«ƒm[ƒh
@@@@@ align="left"
@@@@@ id="smp"
ƒvƒƒpƒeƒB     •Ô‚è’l
nodeValue FƒeƒLƒXƒg’Šo // —v‘fƒm[ƒh‚Ínull AƒeƒLƒXƒgƒm[ƒh‚̓m[ƒh‚̕��Žš—ñ
nodeName Fƒm[ƒh‚̃^ƒO–¼ // —v‘f‚̓^ƒO–¼AƒeƒLƒXƒgƒm[ƒh‚Í "#text"‚Ƃ��‚¤•ï¿½ï¿½Žš
childNones.length FŽqƒm[ƒh‚̐”
nodeType FŠeŽíƒm[ƒh‚ª•Ô‚·”’l // —v‘fƒm[ƒh‚Í1CƒeƒLƒXƒgƒm[ƒh‚Í3
getAttributeNode Fƒm[ƒh‚ÌŽw’肵‚½‘®«–¼‚Ì‘®«’l‚𓾂é
 ’) getAttributeNode‚̓ƒ\ƒbƒh‚Å‚·
Še ƒvƒƒpƒeƒB‚ðƒNƒŠƒbƒN‚·‚é‚Æ‚»‚ê‚ɑΉž‚·‚é ’l ‚ª•\Ž¦‚³‚ê‚Ü‚·B

 document.getElementById('id‘®«’l');

‚Å‚Ídocument.getElementById ƒƒ\ƒbƒh‚ðŽg‚Á‚ÄŠeAŽqƒm[ƒh‚ɃAƒNƒZƒX‚µ‚Ä‚Ý‚Ü‚·B
‚�}‚�}‚Å‚ÍŽw’肵‚½'id‘®«’l‚ðŽ‚Â—v‘fƒm[ƒh <p>‚ª‹N“_‚É‚È‚è‚Ü‚·B

<p align="left" id="smp">‚�}‚ꂪ<strong>DOMƒcƒŠ[</strong>‚̍\‘��‚Å‚·B</p>
var Mnode = document.getElementById("smp");
// <p>ƒ^ƒO“à‚Ì‘S—v‘f‚ð•Ï” Mnode ‚ÉŠi”[‚µ‚Ü‚·B
Mnode.*****; Mnode.childNodes[0].*****; Mnode.childNodes[1].*****; Mnode.childNodes[1].childNodes[0].*****; Mnode.childNodes[2].*****;
***** ‚ɏã‹L,•\‚̃vƒƒpƒeƒB(getAttributeNode‚ðœ‚­)‚ð‚��‚ê‚Ü‚·‚Æ
‚»‚ê‚ɑΉž‚·‚é’l‚ª•Ô‚Á‚Ä‚«‚Ü‚·B

  —v‘f‚Ì‘®«‚Ì’l‚𓾂é‚É‚ÍgetAttributeNode()ƒƒ\ƒbƒh‚ðŽg‚��‚Ü‚·B
ˆø”‚É‘®«–¼‚ð“ü‚ê‚é‚Æ‚»‚Ì‘®«’l‚ð•Ô‚µ‚Ü‚·B
Mnode.getAttributeNode('align').value‚Å‚»‚Ì‘®«’l left ‚ð
Mnode.getAttributeNode('id').value‚Åid‘®«’l smp ‚ðŽæ“¾‚·‚é‚�}‚Æ‚ª‚Å‚«‚Ü‚·B


ƒŠƒXƒgƒ}[ƒN a —v‘f‚Ì‘®«’l‚âƒm[ƒh‚Ì’l‚̎擾‚ƕύX

JavaScript ƒXƒ^ƒCƒ‹ƒV[ƒgƒTƒ“ƒvƒ‹W
<a href="http://javascript123.seesaa.net/" target="_blank" class="Clink" id="link1">JavaScript ƒXƒ^ƒCƒ‹ƒV[ƒgƒTƒ“ƒvƒ‹W</a>

’l‚̎擾
var Mnode = document.getElementById("link1");
Mnode.getAttributeNode('href').value; // http://javascript123.seesaa.net/
Mnode.getAttributeNode('target').value; // _blank
Mnode.getAttributeNode('class').value; // Clink
Mnode.getAttributeNode('id').value; // link1
Mnode.childNodes[0].nodeValue; // JavaScript ƒXƒ^ƒCƒ‹ƒV[ƒgƒTƒ“ƒvƒ‹W
@<*Mnodeƒm[ƒh‚É‚Í‚P‚‚µ‚©Žqƒm[ƒh‚͂Ȃ��‚Ì‚ÅfirstChild(Å‰‚ÌŽqƒm[ƒh)‚Å‚à
lastChild(ÅŒã‚ÌŽqƒm[ƒh)‚Å‚à“¯‚��’l‚ðŽæ“¾‚Å‚«‚Ü‚·B*>
Mnode.firstChild.nodeValue; // JavaScript ƒXƒ^ƒCƒ‹ƒV[ƒgƒTƒ“ƒvƒ‹W
Mnode.lastChild.nodeValue; // JavaScript ƒXƒ^ƒCƒ‹ƒV[ƒgƒTƒ“ƒvƒ‹W
ƒŠƒ“ƒNæ‚ƃŠƒ“ƒN•ï¿½ï¿½Žš‚ðgetAttributeNode‚ÆnodeValue‚ŕύX‚µ‚Ü‚·B
’l‚̕ύX
var Mnode = document.getElementById("link1");
Mnode.getAttributeNode("href").value="http://www.google.co.jp/";
Mnode.childNodes[0].nodeValue="Google"; 
<*’l‚̎擾‚Æ‚Í”½‘΂Ɋó–]‚·‚é’l‚ð‘ã“ü‚·‚ê‚΂ł«‚ ‚ª‚è‚Å‚·B*>

ã‹L‚Ì—p—á‚ÍŠÈ’P‚Å‚·‚ª‚�}‚̂悤‚É‚µ‚ÄJavascript‚©‚çDOMƒcƒŠ[‚ð’H‚Á‚Ä
HTML•ï¿½ï¿½‘‚ðŽ©—R‚É‘€ì‚Å‚«‚Ü‚·B

¡‰ñ‚Ídocument.getElementById("id’l");‚ðŽg‚Á‚ÄHTML“à‚Ì—v‘f‚ð“Á’肵‚Ä
ƒAƒNƒZƒX‚µ‚Ü‚µ‚½‚ª‚�}‚Ì‘¼‚É‚Qƒc‚̃ƒ\ƒbƒh‚ª—pˆÓ‚³‚ê‚��‚Ü‚·B

document.getElementsByTagName("ƒ^ƒO–¼");

document.getElementsByName("name‘®«’l");

ƒ`ƒFƒbƒN‚ª“ü‚é‚ƃ`ƒFƒbƒNƒ{ƒbƒNƒX‚ƃ‰ƒxƒ‹(•ï¿½ï¿½Žš)‚Ì”wŒiF‚ª•Ï‚í‚è‚Ü‚·
ƒ`ƒFƒbƒNƒ{ƒbƒNƒX‚̃`ƒFƒbƒN‚Å‚«‚鐔‚ðï¿½ï¿½ŒÀ‚µ,“ü—Í•s‰Â‚É‚µ‚Ü‚·
ƒ`ƒFƒbƒNƒ{ƒbƒNƒX‚Ì‚·‚�~‚Ä‘I‘ð ‚·‚�~‚ĉðœ
ƒcƒŠ[ƒƒjƒ…[@ƒ`ƒFƒbƒNƒ{ƒbƒNƒX‚Ƀ`ƒFƒbƒN‚ð“ü‚ê‚é‚ƃƒjƒ…[‚ª“WŠJ
ƒ`ƒFƒbƒN‚ª“ü‚é‚ƃ`ƒFƒbƒNƒ{ƒbƒNƒX‚ƃ‰ƒxƒ‹(•ï¿½ï¿½Žš)‚Ì”wŒiF‚ª•Ï‚í‚è‚Ü‚·
JavaScript‚Å“®“I‚ɃNƒ‰ƒX–¼‚ð•t‚¯‚Ü‚·B•Ï‚¦‚Ü‚·
ƒe[ƒuƒ‹‚̍s‚Ì”wŒiF‚ðˆês‚�N‚«‚É•Ï‚¦‚Ü‚·
ƒgƒOƒ‹ƒXƒCƒbƒ`i‚O‚Æ‚PAtrue‚Æfalse‚ðØ‚è‘Ö‚¦jðŒ•ªŠò

posted by javaScript at 22:09 | ‘åã ☔ | DOM | ‚}‚̃uƒƒO‚Ì“ÇŽÒ‚É‚È‚é | XVî•ñ‚ðƒ`ƒFƒbƒN‚·‚é