Node
Baseline
åºãå©ç¨å¯è½
*
ãã®æ©è½ã¯åºãå®è£ ããã¦ãããå¤ãã®ãã¼ã¸ã§ã³ã®ç«¯æ«ããã©ã¦ã¶ã¼ã§åä½ãã¾ãã2015å¹´7æä»¥éããã¹ã¦ã®ãã©ã¦ã¶ã¼ã§å©ç¨å¯è½ã§ãã
* ãã®æ©è½ã®ä¸é¨ã¯ã対å¿ã¬ãã«ãç°ãªãå ´åãããã¾ãã
DOM ã® Node ã¤ã³ã¿ã¼ãã§ã¤ã¹ã¯ãä»ã®å¤ãã® DOM API ãªãã¸ã§ã¯ãã®ãã¼ã¹ã¨ãªãæ½è±¡çãªåºåºã¯ã©ã¹ã§ãããããã£ã¦ããããã®ãªãã¸ã§ã¯ãåã¨é¡ä¼¼ãã¦ããããã°ãã°äº¤æãã¦ä½¿ç¨ãããã¨ãã§ãã¾ããæ½è±¡ã¯ã©ã¹ã§ãããããåãªã Node ãªãã¸ã§ã¯ãã¨ãããã®ã¯åå¨ãã¾ããã Node ã®æ©è½ãå®è£
ãã¦ãããªãã¸ã§ã¯ãã¯ãã¹ã¦ãä½ããã®ãµãã¯ã©ã¹ã«åºã¥ãã¦ãã¾ããæã注ç®ãã¹ããã®ã¯ã Document, Element, DocumentFragment ã§ãã
ããã«å ãã¦ããããã種é¡ã® DOM ãã¼ãã Node ãåºåºã¨ããã¤ã³ã¿ã¼ãã§ã¤ã¹ã§è¡¨ç¾ããã¾ããããã«ã¯ã Attr, CharacterData (Text, Comment, CDATASection, ProcessingInstruction ããã¹ã¦åºåºã¨ãããã®), DocumentType ãããã¾ãã
å ´åã«ãã£ã¦ã¯ããã¼ã¹ã¨ãªã Node ã¤ã³ã¿ã¼ãã§ã¤ã¹ã®ç¹å®ã®æ©è½ãåã¤ã³ã¿ã¼ãã§ã¤ã¹ã«é©ç¨ãããªããã¨ãããã¾ãããã®å ´åãç¶æ¿ãããã¼ãã¯ç¶æ³ã«å¿ã㦠null ãè¿ããããä¾å¤ãæããããã¾ããä¾ãã°ãåãæã¦ãªããã¼ãåã«åã追å ãããã¨ããã¨ãä¾å¤ãçºçãã¾ãã
ã¤ã³ã¹ã¿ã³ã¹ããããã£
以ä¸ã®ããããã£ã«å ãã Node ã¯è¦ªã§ãã EventTarget ããããããã£ãç¶æ¿ãã¦ãã¾ãã
Node.baseURIèªåå°ç¨-
ãã®
Nodeãæã¤ææ¸ã®ãã¼ã¹ URL ã表ãæååãè¿ãã¾ãã Node.childNodesèªåå°ç¨-
ãã®ãã¼ãã®ãã¹ã¦ã®åå«ï¼è¦ç´ ãããã¹ããã³ã¡ã³ãï¼ãæã¤ãçãã
NodeListãè¿ãã¾ããNodeListãçãã¦ããã¨ã¯ãNodeã®åãå¤åããã°èªåçã«NodeListãªãã¸ã§ã¯ããæ´æ°ããããã¨ãæå³ãã¾ãã Node.firstChildèªåå°ç¨-
ãã¼ãã®ç´ä¸ã®æåã®åãã¼ãã表ã
Nodeãè¿ãã¾ããåãåå¨ããªããã°nullãè¿ãã¾ãã Node.isConnectedèªåå°ç¨-
è«çå¤ã§ããã¼ããï¼ç´æ¥/鿥çã«ï¼ã³ã³ããã¹ããªãã¸ã§ã¯ããä¾ãã°ãé常㮠DOM ã®å ´åã¯
Documentãªãã¸ã§ã¯ãããããã¯ã·ã£ã㦠DOM ã®å ´åã¯ShadowRootã«æ¥ç¶ããã¦ãããã©ããã示ãã¾ãã Node.lastChildèªåå°ç¨-
ãã¼ãã®ç´ä¸ã®æå¾ã®åãã¼ãã表ã
Nodeãè¿ãã¾ããåãåå¨ããªããã°nullãè¿ãã¾ãã Node.nextSiblingèªåå°ç¨-
ããªã¼æ§é ã§æ¬¡ã®ãã¼ãã表ã
Nodeãè¿ãã¾ãã該å½ãããã¼ãããªãå ´åã¯nullãè¿ãã¾ãã Node.nodeNameèªåå°ç¨-
Nodeã®ååãæã¤æååãè¿ãã¾ããååã®æ§é ã¯ããã¼ãã®åã«ãã£ã¦ç°ãªãã¾ããä¾ãã°ãHTMLElementã¯HTMLAudioElementã«å¯¾ãã¦'AUDIO'ã¨ããããã«å¯¾å¿ããã¿ã°ã®ååãTextãã¼ãã¯'#text'ã¨ããæååãDocumentãã¼ãã¯'#document'ã¨ããæååã«ãªãã¾ãã Node.nodeTypeèªåå°ç¨-
ãã¼ãã®åã表ã
unsigned shortãè¿ãã¾ãã使ç¨ã§ããå¤ã¯æ¬¡ã®éãã§ããåå å¤ ELEMENT_NODE1ATTRIBUTE_NODE2TEXT_NODE3CDATA_SECTION_NODE4PROCESSING_INSTRUCTION_NODE7COMMENT_NODE8DOCUMENT_NODE9DOCUMENT_TYPE_NODE10DOCUMENT_FRAGMENT_NODE11 Node.nodeValue-
ç¾å¨ã®ãã¼ãã®å¤ãåå¾ã¾ãã¯è¨å®ãã¾ãã
Node.ownerDocumentèªåå°ç¨-
ãã¼ããæå±ããææ¸ã
Documentã§è¿ãã¾ãããã¼ããææ¸èªèº«ã®å ´åã¯ãnullãè¿ãã¾ãã Node.parentNodeèªåå°ç¨-
ãã®ãã¼ãã®è¦ªã®
Nodeãè¿ãã¾ãããã¼ããããªã¼ã®æä¸ä½ã§ããããããã¯ããªã¼ã«å ãã£ã¦ããªããªã©ã親ãåå¨ããªãå ´åã¯nullãè¿ãã¾ãã Node.parentElementèªåå°ç¨-
ãã®ãã¼ãã®è¦ªã®è¦ç´ ã
Elementã§è¿ãã¾ãããã¼ãã«è¦ªãåå¨ããªãããããã¯è¦ªãElementã§ã¯ãªãå ´åã¯ãnullãè¿ãã¾ãã Node.previousSiblingèªåå°ç¨-
ããªã¼æ§é ã§åã®ãã¼ãã表ã
Nodeãè¿ãã¾ãã該å½ãããã¼ãããªãå ´åã¯nullãè¿ãã¾ãã Node.textContent-
è¦ç´ ãè¦ç´ ã®ãã¹ã¦ã®åå«ã®ããã¹ãã³ã³ãã³ããåå¾ã¾ãã¯è¨å®ãã¾ãã
ã¤ã³ã¹ã¿ã³ã¹ã¡ã½ãã
以ä¸ã®ã¡ã½ããã«å ãã¦ã親ã§ãã EventTarget ããã¡ã½ãããç¶æ¿ãã¦ãã¾ãã
Node.appendChild()-
æå®ããã
childNode弿°ããç¾å¨ã®ãã¼ãã®æå¾ã®åã¨ãã¦è¿½å ãã¾ãã 弿°ã DOM ããªã¼ä¸ã®æ¢åã®ãã¼ããåç §ãã¦ããå ´åã¯ããã¼ããç¾å¨ã®ä½ç½®ããå¤ããã¦æ°ããä½ç½®ã«è¿½å ããã¾ãã Node.cloneNode()-
Nodeãè¤è£½ãã¾ããã¾ãããã¹ã¦ã®å 容ç©ãè¤è£½ãããã¨ãã§ãã¾ããæ¢å®ã§ããã¼ãã®å 容ç©ãè¤è£½ãã¾ãã Node.compareDocumentPosition()-
ç¾å¨ã®ãã¼ãã®ä½ç½®ããä»ã®ææ¸å ã®å¥ã®ãã¼ãã¨æ¯è¼ãã¾ãã
Node.contains()-
ãã¼ããæå®ãããã¼ãã®åå«ã§ãããå¦ãã
trueã¾ãã¯falseã®å¤ã§è¿ãã¾ãã Node.getRootNode()-
ã³ã³ããã¹ããªãã¸ã§ã¯ãã®ã«ã¼ããè¿ãã¾ããä»»æã§ãã·ã£ãã¦ã«ã¼ãã使ç¨å¯è½ã§ããå ´åã«ãããå«ãããã¨ãã§ãã¾ãã
Node.hasChildNodes()-
è¦ç´ ãåãã¼ããæã£ã¦ãããå¦ãã示ãè«çå¤ãè¿ãã¾ãã
Node.insertBefore()-
ç¾å¨ã®ãã¼ãã®åã¨ãã¦ãåç §å ãã¼ãã®åã«
Nodeãæ¿å ¥ãã¾ãã Node.isDefaultNamespace()-
弿°ã¨ãã¦åå空éã® URI ãåãå ¥ãã¦ãåå空éãæå®ãããã¼ãã®æ¢å®ã®åå空éã§ããã°
trueãããã§ãªãå ´åã¯falseã§ããè«çå¤ãè¿ãã¾ãã Node.isEqualNode()-
2 ã¤ã®ãã¼ããåãåã§ãããå®ç¾©ããã¦ãããã¹ã¦ã®ãã¼ã¿ãã¤ã³ããä¸è´ãããå¦ãã表ã è«çå¤ãè¿ãã¾ãã
Node.isSameNode()-
2 ã¤ã®ãã¼ããåãã§ããï¼ããªãã¡ãåããªãã¸ã§ã¯ããåç §ãã¦ããï¼ãå¦ãã示ãè«çå¤ãè¿ãã¾ãã
Node.lookupPrefix()-
æå®ããåå空é URI ã®æ¥é è¾ãããã°ããã®æ¥é è¾ãå«ãæååãè¿ãã¾ããæ¥é è¾ããªãå ´åã¯
nullãè¿ãã¾ããè¤æ°ã®æ¥é è¾ããã£ãå ´åã®çµæã¯å®è£ ä¾åã§ãã Node.lookupNamespaceURI()-
æ¥é è¾ãåãå ¥ãã¦ãæå®ãããã¼ãã§æ¥é è¾ãé¢é£ä»ããããåå空éãè¦ã¤ãã£ãå ´åã¯åå空éã® URI ãè¿ãã¾ã (è¦ã¤ãããªãå ´åã¯
nullãè¿ãã¾ã)ãæ¥é è¾ã¨ãã¦nullãä¸ããã¨ãæ¢å®ã®åå空éãè¿ãã¾ãã Node.normalize()-
è¦ç´ å ã®ãã¹ã¦ã®ããã¹ããã¼ããã¯ãªã¼ã³ã¢ããï¼é£æ¥ãã¼ããçµ±åãã空ã®ãã¼ããåé¤ï¼ãã¾ãã
Node.removeChild()-
ç¾å¨ã®è¦ç´ ããåãã¼ããåé¤ãã¾ãããã®ãã¼ãã¯ç¾å¨ã®ãã¼ãã®åã§ãããã¨ãå¿ è¦ã§ãã
Node.replaceChild()-
ç¾å¨ã®ãã¼ãã®å
Nodeã®ã²ã¨ã¤ãã弿°ã§æå®ããå¥ã®ãã¼ãã§ç½®ãæãã¾ãã
ã¤ãã³ã
selectstart-
ã¦ã¼ã¶ã¼ããã®ãã¼ãå ã§æ°ãã鏿ãéå§ããæçºç«ãã¾ãã
ä¾
>ãã¼ãå ã«ãããã¹ã¦ã®åãåé¤
ãã®é¢æ°ã¯ãããè¦ç´ ã®æåã®åããä¸ã¤ãæ®ããªããªãã¾ã§åé¤ãã¾ãã
function removeAllChildren(element) {
while (element.firstChild) {
element.removeChild(element.firstChild);
}
}
ãã®é¢æ°ã®ä½¿ç¨ã¯åä¸ã®å¼ã³åºãã§ãããã¡ãã§ã¯ãææ¸ã®æ¬æã空ã«ãã¾ãã
removeAllChildren(document.body);
ä»ã®æ¹æ³ã¨ãã¦ã textContent ã«ç©ºæååãè¨å®ããã㨠(document.body.textContent = "") ãå¯è½ã§ãã
ãã¹ã¦ã®åãã¼ãã®èµ°æ»
次ã®é¢æ°ã¯ãã«ã¼ããã¼ãã«å«ã¾ããï¼ã«ã¼ããã¼ãèªèº«ãå«ããï¼ãã¹ã¦ã®ãã¼ãã«å¯¾ãã¦ã³ã¼ã«ããã¯é¢æ°ãå帰çã«å¼ã³åºãã¾ãã
function eachNode(rootNode, callback) {
if (!callback) {
const nodes = [];
eachNode(rootNode, (node) => {
nodes.push(node);
});
return nodes;
}
if (callback(rootNode) === false) {
return false;
}
if (rootNode.hasChildNodes()) {
for (const node of rootNode.childNodes) {
if (eachNode(node, callback) === false) {
return;
}
}
}
}
ãã®é¢æ°ã¯ã rootNode ã®ããããã®åå«ãã¼ãã«å¯¾ãã¦ï¼ã«ã¼ãèªèº«ãå«ãï¼å帰çã«é¢æ°ãå¼ã³åºãã¾ãã
callback ãçç¥ãããå ´åããã®é¢æ°ã¯ä»£ããã« Array ãè¿ããããã«ã¯ rootNode ã¨ãã®ä¸ã«å«ã¾ãããã¹ã¦ã®ãã¼ããå«ã¾ãã¾ãã
callback ãæä¾ããã false ãè¿ããå ´åãç¾å¨ã®å帰ã¬ãã«ã¯ä¸æ¢ããã颿°ã¯æå¾ã®è¦ªã®ã¬ãã«ããå®è¡ãåéãã¾ããããã¯ãï¼ç¹å®ã®æååãå«ãããã¹ããã¼ããæ¤ç´¢ãããªã©ãã¦ï¼ãã¼ããè¦ã¤ãã£ãæç¹ã§ã«ã¼ãã䏿¢ããããã«å©ç¨ã§ãã¾ãã
ãã®é¢æ°ã«ã¯ 2 ã¤ã®å¼æ°ãããã¾ãã
rootNode-
å帰çã«åå«ã®èµ°æ»ãè¡ã
Nodeãªãã¸ã§ã¯ãã§ãã callbackçç¥å¯-
çç¥å¯è½ãªã³ã¼ã«ããã¯é¢æ°ã§ãåä¸ã®
Nodeã弿°ã¨ãã¦åãåããã®ã§ããçç¥ãããå ´åãeachNodeã¯Arrayã§ãrootNodeã®ä¸ã«å«ã¾ãã (ã«ã¼ãèªèº«ãå«ã) ãã¼ãã®ä¸è¦§ãè¿ãã¾ãã
次ã®ä¾ã¯ eachNode() 颿°ã®ç¾å®ä¸çã§ã®ä½¿ç¨æ¹æ³ã¨ãã¦ãã¦ã§ããã¼ã¸ä¸ã®ããã¹ãã®æ¤ç´¢ã示ãã¾ãã
æ¤ç´¢ã«ã¯ grep ã¨ããã©ããã¼é¢æ°ã使ç¨ãã¦ãã¾ãã
function grep(parentNode, pattern) {
let matches = [];
let endScan = false;
eachNode(parentNode, (node) => {
if (endScan) {
return false;
}
// Ignore anything which isn't a text node
if (node.nodeType !== Node.TEXT_NODE) {
return;
}
if (typeof pattern === "string" && node.textContent.includes(pattern)) {
matches.push(node);
} else if (pattern.test(node.textContent)) {
if (!pattern.global) {
endScan = true;
matches = node;
} else {
matches.push(node);
}
}
});
return matches;
}
仿§æ¸
| 仿§æ¸ |
|---|
| DOM > # interface-node > |