Document: moveBefore() ã¡ã½ãã
å©ç¨å¯è½æ§ã¯éå®ç
ãã®æ©è½ã¯ãã¼ã¹ã©ã¤ã³ã§ã¯ããã¾ãããæãåºã使ç¨ããã¦ãããã©ã¦ã¶ã¼ã®ä¸é¨ã§åä½ãã¾ããã
Want more support for this feature? Tell us why.
moveBefore() 㯠Document ã¤ã³ã¿ã¼ãã§ã¤ã¹ã®ã¡ã½ããã§ãæå®ããã Node ã DOM ãã¼ã Document å
ã®ç´æ¥ã®åã¨ãã¦ãæå®ãããåç
§ãã¼ãã®åã«ç§»åãã¾ãã
æ§æ
moveBefore(movedNode, referenceNode)
弿°
movedNode-
ç§»åãããã¼ãã表ã
Nodeããªããããã¯Elementã¾ãã¯CharacterDataãã¼ãã§ãªããã°ãªãã¾ããã referenceNode-
Nodeã§ãããmovedNodeã®ç§»åå ã¯ãã®åã«ãªãã¾ããã¾ãã¯nullã§ãããã®å¤ãnullã§ãã£ãå ´åãmovedNodeã¯Documentã®åè¦ç´ ã®æ«å°¾ã«æ¿å ¥ããã¾ãã
è¿å¤
ãªã (undefined)ã
ä¾å¤
HierarchyRequestErrorTypeError-
以ä¸ã®ããããã®å ´é¢ã§çºçãã¾ãã
- æå®ããã
movedNodeããã®ææ¸ã«å±ãã¦ããªãã - æå®ããã
movedNodeã¯Elementã¾ãã¯CharacterDataãã¼ãã§ã¯ãªãã movedNodeããã®ææ¸ã® doctype ï¼DocumentTypeãªãã¸ã§ã¯ãã§è¡¨ãããï¼ã®åã«ç§»åãããã¨ããã
- æå®ããã
NotFoundErrorTypeError-
æå®ããã
referenceNodeã¯ãmoveBefore()ãå¼ã³åºãããã¼ãã®åãã¼ãã§ã¯ãªããã¤ã¾ããmovedNodeã®ç§»åå ãã¼ãã®åãã¼ãã§ã¯ãªãã TypeErrorTypeError-
2 ã¤ç®ã®å¼æ°ãæå®ããã¦ããªãã
解説
moveBefore() ã¡ã½ããã¯ãæå®ããããã¼ãããã® DOM å
ã®æ°ããå ´æã«ç§»åãã¾ãããã㯠Node.insertBefore() ã¡ã½ããã¨åæ§ã®æ©è½ãæä¾ãã¾ããããã¼ããé¤å»ããã«ãåæ¿å
¥ãããç¹ãç°ãªãã¾ããã¤ã¾ãã insertBefore() ãé¡ä¼¼ã®ã¡ã«ããºã ã§ç§»åããå ´åã«ãªã»ããããããæ¬¡ã®ãããªãã¼ãã®ç¶æ
ããç§»åå¾ãä¿æããã¾ãã
- ã¢ãã¡ã¼ã·ã§ã³ããã©ã³ã¸ã·ã§ã³ã®ç¶æ ã
<iframe>ã®èªã¿è¾¼ã¿ç¶æ ã- æä½ã®ç¶æ
ï¼ä¾ãã°
:focusã:activeï¼ã - è¦ç´ ã®å ¨ç»é¢ã®ç¶æ ã
- ããããªã¼ãã¼ã®ééç¶æ ã
<dialog>è¦ç´ ã®ã¢ã¼ãã«ç¶æ ï¼ã¢ã¼ãã«ãã¤ã¢ãã°ã¯éãããã¾ããï¼ã
<video> ããã³ <audio> è¦ç´ ã®åçç¶æ
ã¯ã以ä¸ã®ä¸è¦§ã«ã¯å«ã¾ãã¾ããããããã®è¦ç´ ã¯ã使ç¨ãããä»çµã¿ã«é¢ããããé¤å»ããåæ¿å
¥ãããå¾ãç¶æ
ãä¿æããããã§ãã
MutationObserver ã使ç¨ã㦠DOM ã®å¤æ´ãç£è¦ããå ´åãmoveBefore() ã§ç§»åããããã¼ãã¯é¤å»ããããã¼ãã¨è¿½å ããããã¼ãã¨ãã¦è¨é²ããã¾ãã
moveBefore() ã¡ã½ããã¯ãDocument ãã¼ãã«å¯¾ãã¦å¼ã³åºãã¦ãç¹ã«æç¨ã§ã¯ããã¾ãããè¦ç´ 以å¤ã®ç¨éãããã¤ããããä¾ãã° moveBefore() ã使ç¨ã㦠Document ã®ã«ã¼ãå¨è¾ºã®ã³ã¡ã³ããã¼ããç§»åããããã¨ãå¯è½ã§ããããããåã
ã® DocumentFragment ã Element ã«å¯¾ãã¦ãããå¼ã³åºãç¨éãæ¢ãæ¹ãã¯ããã«ä¸è¬çã§ãã詳細㯠DocumentFragment.moveBefore() ããã³ Element.moveBefore() ãåç
§ãã¦ãã ããã
moveBefore() ã®å¶ç´
moveBefore() ã使ç¨ããéã«ã¯ãããã¤ãçæãã¹ãå¶ç´ãããã¾ãã
- åãææ¸å ã§ãã¼ããç§»åããå ´åã«ã®ã¿ãåä½ãã¾ãã
- DOM ã«æ¥ç¶ããã¦ããªããã¼ããæ¢ã«æ¥ç¶æ¸ã¿ã®è¦ªãã¼ãã«ç§»ããã¨ããå ´åãã¾ãã¯ãã®éã®å ´åãåä½ãã¾ããã
ãã®ãããªå ´åãmoveBefore() 㯠HierarchyRequestError ä¾å¤ã§å¤±æãã¾ããä¸è¨ã®å¶ç´ãå
·ä½çãªç¨éã§å¿
è¦ã¨ãªãå ´åã代ããã« Node.insertBefore() ã使ç¨ããããtry...catch ã使ç¨ãã¦ããã®ãããªã±ã¼ã¹ã§çºçããã¨ã©ã¼ãå¦çããå¿
è¦ãããã¾ãã
ä¾
>moveBefore() ã§ã³ã¡ã³ããã¼ããç§»å
ãã®ãã¢ã§ã¯ãdocument.moveBefore() ã使ç¨ãã¦ã³ã¡ã³ããã¼ããDOMå
ã§ç§»åããæ¹æ³ã示ãã¦è¡¨ç¤ºããã¾ãã
HTML
ãã® HTML ã¯æå°éã®ãã³ãã¬ã¼ãã§ããã<body> å
ã«ã³ã¡ã³ããããã®ãç¹å¾´ã§ãã
<!doctype html>
<html lang="ja">
<head>
<meta charset="utf-8" />
<title>document.moveBefore() ã®ä¾</title>
</head>
<body>
<!-- ãã®ã³ã¡ã³ãã¯ææ¸ã®çµããã«ç½®ãã¹ãã§ãã -->
<p>ã³ã³ãã³ã</p>
</body>
</html>
JavaScript
ãã®ã¹ã¯ãªããã§ã¯ã<body> è¦ç´ ã®ãã¹ã¦ childNodes ãã«ã¼ãå¦çãã¾ããnodeType ã®å¤ã 8ï¼ã³ã¡ã³ããã¼ãã示ãï¼ã®ãã¼ããè¦ã¤ããå ´åããã®åç
§ã commentNode ã¨ãã夿°ã«ä¿åãã¾ããæ¬¡ã«ãdocument.moveBefore() ãå¼ã³åºããã³ã¡ã³ããã¼ããç§»åããããã¨ãæå®ãã2 ã¤ç®ã®å¼æ°ã¨ã㦠null ãæå®ãã¦ãã³ã¡ã³ãã Document ã®åãã¼ãã®æ«å°¾ã«æ¿å
¥ãã¾ãã
let commentNode;
for (node of document.querySelector("body").childNodes) {
if (node.nodeType === 8) {
commentNode = node;
}
}
document.moveBefore(commentNode, null);
çµæ
ã¬ã³ããªã³ã°ãããä¾ã¯ä»¥ä¸ã®ããã«ãªãã¾ãã
ãã©ã¦ã¶ã¼ã®éçºè
ãã¼ã«ã§ãã®ä¾ã調ã¹ãã¨ãã³ã¡ã³ããææ¸ã®çµãããçµäºã¿ã° </html> ã®å¾ã«ç§»åããã¦ãããã¨ã«æ°ã¥ãã§ãããã
仿§æ¸
| 仿§æ¸ |
|---|
| DOM > # dom-parentnode-movebefore > |