【Javascript】「DOM(Document Object Model)」の使い方
【Javascript】
「DOM(Document Object Model)」の使い方
「Javascript」の「DOM(Document Object Model)」を使いこなすと、
Webページで、画像やテキスト、カラーなどを変更したり、動かしたりできる。
「DOM(Document Object Model)」を操作しない限り、
「Javascript」では、何もできないと思ってよいほど、中心的な機能です。
覚えてしまうと、色々できて楽しいはずです。
DOMとは
「DOM」は、「Document Object Model」の略。
「DOM」は、操作を可能にするAPIで、
「Node」「Element」の操作を可能にします。
簡単に言えば、
「「Javascript」で、Webページを色々と操作できるようにしてくれている。」
ということです。
このDOMを利用することで、「Javascript」を使用して、
HTMLタグを指定し、HTMLタグのテキスト内容や、
スタイル属性を参照・変更することができます。
マウス動作に反応させて、色などを変更するなどということも可能になります。
document.getElementById("ID名").style.fontSize="20px";
と「Javascript」に記述することで、
指定したID名のHTMLタグ内のテキストフォントサイズを「20px」に変更することができます。
Back
要素の操作方法
「DOM」は、
要素を指定して、参照することで、
Webに動的な要素を追加することができます。
要素の操作方法は、比較的単純です。
要素の操作方法は、
・要素を指定
・要素を参照
・要素を設定
です。
要素(エレメント)を指定する方法
要素を指定することで、
その要素の情報を参照・変更することができる。
要素を指定しただけでは、
何も変化はしないが、
要素を指定できないと、
何も参照・変更ができないので、
要素の指定は重要。
要素(エレメント)を指定する書式
//要素を「ID」で指定する
var 変数名 = document.querySelector('#ID名');
//クラス名の最初の要素を指定する
var 変数名 = document.querySelector('.クラス名');
//クラス名の要素を全て取得する
var 変数名 = document.querySelectorAll('.クラス名');
//要素を「ID」で指定する
var 変数名 = document.getElementById("ID名");
//タグ名で要素を指定する
var 変数名 = document.getElementsByTagName("タグ名");
//タグのname属性で要素を指定する
var 変数名 = document.getElementsByName("name値");
Back
要素(エレメント)を参照する方法
要素を指定した後に、
要素の情報を参照することができる。
要素の指定と同時に、参照することも可能。
要素を参照する書式
//要素を「ID」で指定・参照する
var 変数名 = document.querySelector('#ID名').style.color;
var 配列名 = document.querySelector('#ID名').childNodes;
//要素を指定した後に、要素を参照する
var 要素指定した変数名 = document.querySelector('#ID名');
var 変数名 = 要素指定した変数名.style.color;
var 配列名 = 要素指定した変数名.childNodes;
Back
要素リストから要素を取り出す方法
要素を指定して、
要素を参照することで、情報を確認できますが、
要素の参照情報が、配列の場合は、
もう一手間必要です。
配列に、情報が入れられているので、
配列で情報を読み出す必要があります。
繰り返しの「for」構文などを利用するのも便利です。
要素リストから要素を取り出す書式
//要素を「ID」で指定する
var Get_ChildNodes = document.querySelector('#ID名').childNodes;
//要素を指定した後に、要素を参照する
var Get_ID = document.querySelector('#ID名');
var Get_ChildNodes = Get_ID.childNodes;
var Count_ChildNodes = Get_ChildNodes.length;
var Get_Child = Get_ChildNodes[0];
var Get_Child = Get_ChildNodes(0);
var Get_Child = Get_ChildNodes.id1;
var Get_Child = Get_ChildNodes.item(0);
var Get_Child = Get_ChildNodes.item("name名");
var Get_Child = Get_ChildNodes.namedItem("name名");
var Get_Child = Get_ChildNodes.tags("タグ名");
var Get_Child;
for (i = 0; i < Count_ChildNodes; i++) {
Get_Child = Get_ChildNodes[i];
document.write(Get_Child);
}
Back
要素内の文字を参照する方法
要素内の文字やHTMLコードを参照する方法もあります。
基本は同じで、
要素を指定したら、参照します。
要素内の文字を参照できるプロパティは、
・firstChild.nodeValue
・innerText
・innerHTML
などが使用できます。
要素内の文字を参照する書式
//要素を「ID」で指定する
var Get_ChildNodes = document.querySelector('#ID名').childNodes;
//要素を指定した後に、要素を参照する
var Get_ID = document.querySelector('#ID名');
var Get_ChildNodes = Get_ID.childNodes;
var 要素内の文字を格納する変数 = Get_ChildNodes.firstChild.nodeValue;
var 要素内の文字を格納する変数 = Get_Child.innerText;
var 要素内の文字を格納する変数 = Get_Child.innerHTML;
Back
要素の属性値を参照する方法
要素の属性値も同じように、
・id;
・getAttribute("属性名");
・getAttributeNode("属性名").value
・getAttributeNode("属性名").nodeValue
・attributes.getNamedItem("属性名").value
・attributes.getNamedItem("属性名").nodeValue
を使用して参照することができます。
要素の属性値を参照する書式
//要素を「ID」で指定・参照する
var Get_ChildNodes = document.querySelector('#ID名').childNodes;
var 変数名 = document.querySelector('#ID名').id;
var 変数名 = document.querySelector('#ID名').getAttribute("属性名");
var 変数名 = document.querySelector('#ID名').getAttributeNode("属性名").value;
var 変数名 = document.querySelector('#ID名').getAttributeNode("属性名").nodeValue;
var 変数名 = document.querySelector('#ID名').attributes.getNamedItem("属性名").value;
var 変数名 = document.querySelector('#ID名').attributes.getNamedItem("属性名").nodeValue;
//要素を指定した後に、属性値を参照する
var Get_ID = document.querySelector('#ID名');
var 変数名 = Get_ID.id;
var 変数名 = Get_ID.getAttribute("属性名");
var 変数名 = Get_ID.getAttributeNode("属性名").value;
var 変数名 = Get_ID.getAttributeNode("属性名").nodeValue;
var 変数名 = Get_ID.attributes.getNamedItem("属性名").value;
var 変数名 = Get_ID.attributes.getNamedItem("属性名").nodeValue;
Back
属性値を設定する方法
属性値を設定するには、
・「=」で指定
・setAttribute("属性名", value)
・getAttributeNode("属性名").value
・getAttributeNode("属性名").nodeValue
・attributes.getNamedItem("属性名").value
・attributes.getNamedItem("属性名").nodeValue
・setAttributeNode("属性名")
などの方法がある。
要素の属性値を変更する書式
//要素を「ID」で指定・変更する
document.querySelector('#ID名').id = value;
document.querySelector('#ID名').setAttribute("属性名", value);
document.querySelector('#ID名').getAttributeNode("属性名").value = value;
document.querySelector('#ID名').getAttributeNode("属性名").nodeValue = value;
document.querySelector('#ID名').attributes.getNamedItem("属性名").value = value;
document.querySelector('#ID名').attributes.getNamedItem("属性名").nodeValue = value;
document.querySelector('#ID名').setAttributeNode("属性名");
//要素を指定した後に、属性値を変更する
var Get_ID = document.querySelector('#ID名');
Get_ID.id = value;
Get_ID.setAttribute("属性名", value);
Get_ID.getAttributeNode("属性名").value = value;
Get_ID.getAttributeNode("属性名").nodeValue = value;
Get_ID.attributes.getNamedItem("属性名").value = value;
Get_ID.attributes.getNamedItem("属性名").nodeValue = value;
Get_ID.setAttributeNode("属性名");
Back
属性を作成・削除する方法
属性を作成・削除する書式
createAttribute
var NewaAttr = document.createAttribute("属性名");
NewaAttr.nodeValue = "属性値";
document.querySelector('#ID名').attributes.setNamedItem(NewaAttr);
removeAttribute
document.querySelector('#ID名').removeAttribute("属性名");
removeAttributeNode
var GetAttrNode = element.getAttributeNode("属性名");
document.querySelector('#ID名').removeAttributeNode(GetAttrNode);
Back
DOMで使えるインターフェイス一覧
インターフェイスの中には、
色々な「プロパティ」「メソッド」が含まれていて、
その「プロパティ」「メソッド」を利用することで、
「Javascript」を利用して、Webページを動的にコントロールすることができます。
インターフェイスの一覧
インターフェイス名 | 説明 |
DOMインターフェイス |
Attr | |
CDATASection | |
CharacterData | |
ChildNode | |
Comment | |
CustomEvent | |
Document | |
DocumentFragment | |
DocumentType | |
DOMError | |
DOMException | |
DOMImplementation | |
DOMString | |
DOMTimeStamp | |
DOMStringList | |
DOMTokenList | |
Element | |
Event | |
EventTarget | |
HTMLCollection | |
MutationObserver | |
MutationRecord | |
NamedNodeMap | |
Node | |
NodeFilter | |
NodeIterator | |
NodeList | |
NonDocumentTypeChildNode | |
ParentNode | |
ProcessingInstruction | |
Selection | |
Range | |
Text | |
TextDecoder | |
TextEncoder | |
TimeRanges | |
TreeWalker | |
URL | |
Window | |
Worker | |
XMLDocument | |
| |
| |
SVGのインターフェイス |
SVG要素のインターフェイス |
SVGAElement | |
SVGAltGlyphElement | |
SVGAltGlyphDefElement | |
SVGAltGlyphItemElement | |
SVGAnimationElement | |
SVGAnimateElement | |
SVGAnimateColorElement | |
SVGAnimateMotionElement | |
SVGAnimateTransformElement | |
SVGCircleElement | |
SVGClipPathElement | |
SVGColorProfileElement | |
SVGComponentTransferFunctionElement | |
SVGCursorElement | |
SVGDefsElement | |
SVGDescElement | |
SVGElement | |
SVGEllipseElement | |
SVGFEBlendElement | |
SVGFEColorMatrixElement | |
SVGFEComponentTransferElement | |
SVGFECompositeElement | |
SVGFEConvolveMatrixElement | |
SVGFEDiffuseLightingElement | |
SVGFEDisplacementMapElement | |
SVGFEDistantLightElement | |
SVGFEDropShadowElement | |
SVGFEFloodElement | |
SVGFEFuncAElement | |
SVGFEFuncBElement | |
SVGFEFuncGElement | |
SVGFEFuncRElement | |
SVGFEGaussianBlurElement | |
SVGFEImageElement | |
SVGFEMergeElement | |
SVGFEMergeNodeElement | |
SVGFEMorphologyElement | |
SVGFEOffsetElement | |
SVGFEPointLightElement | |
SVGFESpecularLightingElement | |
SVGFESpotLightElement | |
SVGFETileElement | |
SVGFETurbulenceElement | |
SVGFilterElement | |
SVGFilterPrimitiveStandardAttributes | |
SVGFontElement | |
SVGFontFaceElement | |
SVGFontFaceFormatElement | |
SVGFontFaceNameElement | |
SVGFontFaceSrcElement | |
SVGFontFaceUriElement | |
SVGForeignObjectElement | |
SVGGElement | |
SVGGeometryElement | |
SVGGlyphElement | |
SVGGlyphRefElement | |
SVGGradientElement | |
SVGGraphicsElement | |
SVGHatchElement | |
SVGHatchpathElement | |
SVGHKernElement | |
SVGImageElement | |
SVGLinearGradientElement | |
SVGLineElement | |
SVGMarkerElement | |
SVGMaskElement | |
SVGMeshElement | |
SVGMeshGradientElement | |
SVGMeshpatchElement | |
SVGMeshrowElement | |
SVGMetadataElement | |
SVGMissingGlyphElement | |
SVGMPathElement | |
SVGPathElement | |
SVGPatternElement | |
SVGPolylineElement | |
SVGPolygonElement | |
SVGRadialGradientElement | |
SVGRectElement | |
SVGScriptElement | |
SVGSetElement | |
SVGSolidcolorElement | |
SVGStopElement | |
SVGStyleElement | |
SVGSVGElement | |
SVGSwitchElement | |
SVGSymbolElement | |
SVGTextContentElement | |
SVGTextElement | |
SVGTextPathElement | |
SVGTextPositioningElement | |
SVGTitleElement | |
SVGTRefElement | |
SVGTSpanElement | |
SVGUseElement | |
SVGUnknownElement | |
SVGViewElement | |
SVGVKernElement | |
| |
| |
SVGデータ型のインターフェイス【静的型】 |
SVGAngle | |
SVGColor | |
SVGICCColor | |
SVGElementInstance | |
SVGElementInstanceList | |
SVGLength | |
SVGLengthList | |
SVGMatrix | |
SVGNameList | |
SVGNumber | |
SVGNumberList | |
SVGPaint | |
SVGPathSeg | |
SVGPathSegClosePath | |
SVGPathSegMovetoAbs | |
SVGPathSegMovetoRel | |
SVGPathSegLinetoAbs | |
SVGPathSegLinetoRel | |
SVGPathSegCurvetoCubicAbs | |
SVGPathSegCurvetoCubicRel | |
SVGPathSegCurvetoQuadraticAbs | |
SVGPathSegCurvetoQuadraticRel | |
SVGPathSegArcAbs | |
SVGPathSegArcRel | |
SVGPathSegLinetoHorizontalAbs | |
SVGPathSegLinetoHorizontalRel | |
SVGPathSegLinetoVerticalAbs | |
SVGPathSegLinetoVerticalRel | |
SVGPathSegCurvetoCubicSmoothAbs | |
SVGPathSegCurvetoCubicSmoothRel | |
SVGPathSegCurvetoQuadraticSmoothAbs | |
SVGPathSegCurvetoQuadraticSmoothRel | |
SVGPathSegList | |
SVGPoint | |
SVGPointList | |
SVGPreserveAspectRatio | |
SVGRect | |
SVGStringList | |
SVGTransform | |
SVGTransformList | |
| |
| |
SVGデータ型のインターフェイス【アニメーション型】 |
SVGAnimatedAngle | |
SVGAnimatedBoolean | |
SVGAnimatedEnumeration | |
SVGAnimatedInteger | |
SVGAnimatedLength | |
SVGAnimatedLengthList | |
SVGAnimatedNumber | |
SVGAnimatedNumberList | |
SVGAnimatedPathData | |
SVGAnimatedPoints | |
SVGAnimatedPreserveAspectRatio | |
SVGAnimatedRect | |
SVGAnimatedString | |
SVGAnimatedTransformList | |
| |
| |
SVGデータ型のインターフェイス【SMIL関連】 |
ElementTimeControl | |
TimeEvent | |
| |
| |
SVGデータ型のインターフェイス【その他】 |
GetSVGDocument | |
ShadowAnimation | |
SVGColorProfileRule | |
SVGCSSRule | |
SVGDocument | |
SVGException | |
SVGExternalResourcesRequired | |
SVGFitToViewBox | |
SVGLangSpace | |
SVGLocatable | |
SVGRenderingIntent | |
SVGStylable | |
SVGTests | |
SVGTransformable | |
SVGUnitTypes | |
SVGUseElementShadowRoot | |
SVGURIReference | |
SVGViewSpec | |
SVGZoomAndPan | |
SVGZoomEvent | |
Back