Document: createNodeIterator() ã¡ã½ãã
Baseline
åºãå©ç¨å¯è½
ãã®æ©è½ã¯åºãå®è£ ããã¦ãããå¤ãã®ãã¼ã¸ã§ã³ã®ç«¯æ«ããã©ã¦ã¶ã¼ã§åä½ãã¾ãã2015å¹´7æä»¥éããã¹ã¦ã®ãã©ã¦ã¶ã¼ã§å©ç¨å¯è½ã§ãã
Document.createNodeIterator() ã¡ã½ããã¯ãæ°ãã NodeIterator ãªãã¸ã§ã¯ããè¿ãã¾ãã
æ§æ
createNodeIterator(root)
createNodeIterator(root, whatToShow)
createNodeIterator(root, whatToShow, filter)
弿°
root-
NodeIteratorã®æ¢ç´¢ã®éå§å°ç¹ã«ãªãã«ã¼ããã¼ãã§ãã whatToShowçç¥å¯-
ãªãã·ã§ã³ã®
unsigned longå¤ã§ãNodeFilterã®å®æ°ããããã£ãçµã¿åããã¦ä½ãããããããã¹ã¯ã表ãã¾ãã ããã¯ç¹å®ã®ç¨®é¡ã®ãã¼ããçµãè¾¼ã¿ããã®ã«ä¾¿å©ãªæ¹æ³ã§ããæ¢å®å¤ã¯0xFFFFFFFFã§ãSHOW_ALL宿°ã表ãã¾ãã宿° æ°å¤ 説æ NodeFilter.SHOW_ALL4294967295(ããªãã¡unsigned longã®æå¤§å¤)ãã¹ã¦ã®ãã¼ãã表ãã¾ãã NodeFilter.SHOW_ATTRIBUTE2屿§ Attrãã¼ãã表ãã¾ããããã¯ãAttrãã¼ããã«ã¼ãã¨ãã¦NodeIteratorã使ããå ´åã«ã®ã¿æå³ãæã¡ã¾ãããã®å ´åããã®å±æ§ãã¼ããåå¾©ãæ¢ç´¢ã®æåã®ä½ç½®ã«ç¾ãããã¨ãæå³ãã¾ãã屿§ã¯ä»ã®ãã¼ãã®åã§ã¯ãªãã®ã§ãææ¸ããªã¼ãæ¢ç´¢ãã¦ãç¾ãã¾ãããNodeFilter.SHOW_CDATA_SECTION8CDATASectionãã¼ãã表ãã¾ããNodeFilter.SHOW_COMMENT128Commentãã¼ãã表ãã¾ããNodeFilter.SHOW_DOCUMENT256Documentãã¼ãã表ãã¾ããNodeFilter.SHOW_DOCUMENT_FRAGMENT1024DocumentFragmentãã¼ãã表ãã¾ããNodeFilter.SHOW_DOCUMENT_TYPE512DocumentTypeãã¼ãã表ãã¾ããNodeFilter.SHOW_ELEMENT1Elementãã¼ãã表ãã¾ããNodeFilter.SHOW_ENTITY32å¤ãå¤ã§ããã使ç¨ã§ãã¾ããã NodeFilter.SHOW_ENTITY_REFERENCE16å¤ãå¤ã§ããã使ç¨ã§ãã¾ããã NodeFilter.SHOW_NOTATION2048å¤ãå¤ã§ããã使ç¨ã§ãã¾ããã NodeFilter.SHOW_PROCESSING_INSTRUCTION64Shows ProcessingInstructionnodes.NodeFilter.SHOW_TEXT4Textãã¼ãã表ãã¾ãã filterçç¥å¯-
ã³ã¼ã«ããã¯é¢æ°ã¾ãã¯
acceptNode()ã¡ã½ãããæã¤ãªãã¸ã§ã¯ãã§ãããã®é¢æ°ã¾ãã¯ã¡ã½ããã¯ããã®é¢æ°ã¾ãã¯ã¡ã½ããã¯ããµãããªã¼å ã®åãã¼ãã®ãã¡ whatToShow ãã©ã°ã§å«ã¾ããã¨åãå ¥ãããããã¼ãã«å¯¾ãã¦å¼ã³åºãããå復å¯è½ãªãã¸ã§ã¯ãã®ãªã¹ãã«è¨è¼ãããã©ãããæ±ºå®ãã¾ãããã®ã¡ã½ããã¯NodeFilter.FILTER_ACCEPTãNodeFilter.FILTER_REJECTãNodeFilter.FILTER_SKIPã®ãããããè¿ãå¿ è¦ãããã¾ããä¾ãåç §ãã¦ãã ããã
è¿å¤
æ°ãã NodeIterator ãªãã¸ã§ã¯ãã§ãã
ä¾
const nodeIterator = document.createNodeIterator(
document.body,
NodeFilter.SHOW_ELEMENT,
(node) =>
node.nodeName.toLowerCase() === "p"
? NodeFilter.FILTER_ACCEPT
: NodeFilter.FILTER_REJECT,
);
const pars = [];
let currentNode;
while ((currentNode = nodeIterator.nextNode())) {
pars.push(currentNode);
}
åãåä½ã§ãããacceptNode() ã¡ã½ãããæã¤ãªãã¸ã§ã¯ãã使ç¨ãã¦ãã¾ãã
const nodeIterator = document.createNodeIterator(
document.body,
NodeFilter.SHOW_ELEMENT,
{
acceptNode(node) {
return node.nodeName.toLowerCase() === "p"
? NodeFilter.FILTER_ACCEPT
: NodeFilter.FILTER_REJECT;
},
},
);
const pars = [];
let currentNode;
while ((currentNode = nodeIterator.nextNode())) {
pars.push(currentNode);
}
仿§æ¸
| 仿§æ¸ |
|---|
| DOM > # dom-document-createnodeiterator > |