XML DOM - Range ¶ÔÏó

Range ¶ÔÏó±íʾÎĵµÖеÄÁ¬Ðø·¶Î§¡£

Range ¶ÔÏó

Range ¶ÔÏó±íʾÎĵµµÄÁ¬Ðø·¶Î§ÇøÓò£¬ÈçÓû§ÔÚä¯ÀÀÆ÷´°¿ÚÖÐÓÃÊó±êÍ϶¯Ñ¡ÖеÄÇøÓò¡£

Èç¹ûÒ»¸öʵÏÖÖ§³Ö Range Ä£¿é£¬ÄÇô Document ¶ÔÏó¾Í¶¨ÒåÁË createRange() ·½·¨£¬µ÷ÓÃËü¿É´´½¨Ð嵀 Range ¶ÔÏó¡£

×¢Ò⣺IE ¶¨ÒåÁ˲»¼æÈÝµÄ Document.createRange() ·½·¨£¬Ëü·µ»ØµÄ¶ÔÏóÓë Rang ½Ó¿ÚÏàËÆ£¬µ«²»¼æÈÝ¡£

Range ½Ó¿ÚΪָ¶¨Îĵµ¡°Ñ¡ÖС±µÄÇøÓò¶¨ÒåÁË´óÁ¿µÄ·½·¨£¬´ËÍ⻹Óм¸¸ö·½·¨¿ÉÒÔÓÃÓÚÔÚÑ¡ÖеÄÇøÓòÖнøÐмôÇкÍÕ³ÌùÀàÐ͵IJÙ×÷¡£

Range ½Ó¿ÚµÄÊôÐÔÌṩÁË»ñÈ¡·¶Î§µÄ±ß½ç½ÚµãºÍÆ«ÒÆÁ¿µÄ·½·¨¡£ËüµÄ·½·¨ÌṩÁËÉèÖ÷¶Î§±ß½çµÄ·½·¨¡£×¢Ò⣬·¶Î§µÄ±ß½ç¿ÉÒÔÉèÖÃΪ Document »ò DocumentFragment ¶ÔÏóÖеĽڵ㡣һµ©¶¨ÒåÁË·¶Î§µÄ±ß½çµã£¬¾Í¿ÉÒÔʹÓà deleteContents()¡¢extractContents()¡¢cloneContents() ºÍ insertNode() ·½·¨ÊµÏÖ¼ôÇС¢¸´ÖƺÍÕ³ÌùµÄ²Ù×÷¡£

µ±Í¨¹ý²åÈë»òɾ³ý²Ù×÷¸Ä±äÁËÎĵµÊ±£¬±íʾÎĵµÒ»²¿·ÖµÄËùÓÐ Range ¶ÔÏó¶¼½«¸Ä±ä£¨Èç¹û±ØÒªµÄ»°£©£¬ÒÔ±ãʹËüÃǵı߽çµã±£³ÖÓÐЧ£¬²¢ÇÒÈÃËüÃÇ£¨¾¡¿ÉÄܽӽüµØ£©±íʾͬÑùµÄÎĵµÄÚÈÝ¡£

ÊõÓ·¶Î§¡¢±ß½çµãºÍÆ«ÒÆÁ¿

Ò»¸ö·¶Î§¾ßÓÐÁ½¸ö±ß½çµã£¬¼´Ò»¸ö¿ªÊ¼µãºÍÒ»¸ö½áÊøµã¡£Ã¿¸ö±ß½çµãÓÉÒ»¸ö½ÚµãºÍÄǸö½ÚµãµÄÆ«ÒÆÁ¿Ö¸¶¨¡£¸Ã½Úµãͨ³£ÊÇ Element ½Úµã¡¢Document ½Úµã»ò Text ½Úµã¡£¶ÔÓÚ Element ½ÚµãºÍ Document ½Úµã£¬Æ«ÒÆÁ¿Ö¸¸Ã½ÚµãµÄ×Ó½Úµã¡£Æ«ÒÆÁ¿Îª 0£¬ËµÃ÷±ß½çµãλÓڸýڵãµÄµÚÒ»¸ö×Ó½Úµã֮ǰ¡£Æ«ÒÆÁ¿Îª 1£¬ËµÃ÷±ß½çµãλÓڸýڵãµÄµÚÒ»¸ö×Ó½ÚµãÖ®ºó£¬µÚ¶þ¸ö×Ó½Úµã֮ǰ¡£µ«Èç¹û±ß½ç½ÚµãÊÇ Text ½Úµã£¬Æ«ÒÆÁ¿ÔòÖ¸µÄÊÇÎı¾ÖÐÁ½¸ö×Ö·ûÖ®¼äµÄλÖá£

Range ¶ÔÏóµÄ³£Á¿

ÕâЩ³£Á¿Ö¸¶¨ÁËÈçºÎ±È½Ï Range ¶ÔÏóµÄ±ß½çµã¡£

ËüÃÇÊÇ compareBoundaryPoints() ·½·¨µÄ how ²ÎÊýµÄºÏ·¨Öµ£º

³£Á¿ ÃèÊö
START_TO_START ÓÃÖ¸¶¨·¶Î§µÄ¿ªÊ¼µãÓ뵱ǰ·¶Î§µÄ¿ªÊ¼µã½øÐбȽϡ£
START_TO_END ÓÃÖ¸¶¨·¶Î§µÄ¿ªÊ¼µãÓ뵱ǰ·¶Î§µÄ½áÊøµã½øÐбȽϡ£
END_TO_END ÓÃÖ¸¶¨·¶Î§µÄ½áÊøµãÓ뵱ǰ·¶Î§µÄ½áÊøµã½øÐбȽϡ£
END_TO_START ÓÃÖ¸¶¨·¶Î§µÄ½áÊøµãÓ뵱ǰ·¶Î§µÄ¿ªÊ¼µã½øÐбȽϡ£

Range ¶ÔÏóµÄÊôÐÔ

×¢Ò⣺ËùÓÐÊôÐÔ¶¼ÊÇÖ»¶ÁµÄ£¬²»ÄÜͨ¹ýÉèÖÃÕâЩÊôÐԸı䷶ΧµÄ¿ªÊ¼µãºÍ½áÊøµã£¬±ØÐëµ÷Óà setEnd() ·½·¨ºÍ setStart() ·½·¨ÊµÏÖÕâÒ»µã¡£

×¢Ò⣺µ÷Óà detach() ·½·¨ºó£¬¶ÔÕâЩÊôÐÔµÄÈκζÁ²Ù×÷¶¼»áÅ׳ö´úÂëΪ INVALID_STATE_ERR µÄ DOMException Òì³£¡£

ÊôÐÔ ÃèÊö
collapsed Èç¹û·¶Î§µÄ¿ªÊ¼µãºÍ½áÊøµãÔÚÎĵµµÄͬһλÖã¬ÔòΪ true£¬¼´·¶Î§Êǿյ쬻òÕÛµþµÄ¡£
commonAncestorContainer ·¶Î§µÄ¿ªÊ¼µãºÍ½áÊøµãµÄ£¨¼´ËüÃǵÄ׿ÏȽڵ㣩¡¢Ç¶Ì××îÉîµÄ Document ½Úµã¡£
endContainer °üº¬·¶Î§µÄ½áÊøµãµÄ Document ½Úµã¡£
endOffset endContainer ÖеĽáÊøµãλÖá£
startContainer °üº¬·¶Î§µÄ¿ªÊ¼µãµÄ Document ½Úµã¡£
startOffset startContainer ÖеĿªÊ¼µãλÖá£

Range ¶ÔÏóµÄ·½·¨

×¢Ò⣺Èç¹ûµ÷ÓÃÁË·¶Î§µÄ detach() ·½·¨£¬ÄÇô½ÓÏÂÀ´µ÷Óà Range ¶ÔÏóµÄÈκη½·¨¶¼»áÅ׳ö´úÂëΪ INVALID_STATE_ERR µÄ DOMException Òì³£¡£

·½·¨ ÃèÊö
cloneContents() ·µ»ØÐ嵀 DocumentFragment ¶ÔÏó£¬Ëü°üº¬¸Ã·¶Î§±íʾµÄÎĵµÇøÓòµÄ¸±±¾¡£
cloneRange() ´´½¨Ò»¸öÐ嵀 Range ¶ÔÏ󣬱íʾÓ뵱ǰµÄ Range ¶ÔÏóÏàͬµÄÎĵµÇøÓò¡£
collapse() ÕÛµþ¸Ã·¶Î§£¬Ê¹ËüµÄ±ß½çµãÖØºÏ¡£
compareBoundaryPoints() ±È½ÏÖ¸¶¨·¶Î§µÄ±ß½çµãºÍµ±Ç°·¶Î§µÄ±ß½çµã£¬¸ù¾ÝËüÃǵÄ˳Ðò·µ»Ø -1¡¢0 ºÍ 1¡£±È½ÏÄĸö±ß½çµãÓÉËüµÄµÚÒ»¸ö²ÎÊýÖ¸¶¨£¬ËüµÄÖµ±ØÐëÊÇÇ°Ãæ¶¨ÒåµÄ³£Á¿Ö®Ò»¡£
deleteContents() ɾ³ýµ±Ç° Range ¶ÔÏó±íʾµÄÎĵµÇøÓò¡£
detach() ֪ͨʵÏÖ²»ÔÙʹÓõ±Ç°µÄ·¶Î§£¬¿ÉÒÔÍ£Ö¹¸ú×Ù¡£Èç¹ûµ÷ÓÃÁË·¶Î§µÄÕâ¸ö·½·¨£¬ÄÇô½ÓÏÂÀ´µ÷Óõĸ÷¶Î§Èκη½·¨¶¼»áÅ׳ö´úÂëΪ INVALID_STATE_ERR µÄ DOMException Òì³£¡£
extractContents() ɾ³ýµ±Ç°·¶Î§±íʾµÄÎĵµÇøÓò£¬²¢ÇÒÒÔ DocumentFragment ¶ÔÏóµÄÐÎʽ·µ»ØÄǸöÇøÓòµÄÄÚÈÝ¡£¸Ã·½·¨ºÍ cloneContents() ·½·¨Óë deleteContents() ·½·¨µÄ×éºÏºÜÏàËÆ¡£
insertNode() °ÑÖ¸¶¨µÄ½Úµã²åÈëÎĵµ·¶Î§µÄ¿ªÊ¼µã¡£
selectNode() ÉèÖø÷¶Î§µÄ±ß½çµã£¬Ê¹Ëü°üº¬Ö¸¶¨µÄ½ÚµãºÍËüµÄËùÓÐ×ÓËï½Úµã¡£
selectNodeContents() ÉèÖø÷¶Î§µÄ±ß½çµã£¬Ê¹Ëü°üº¬Ö¸¶¨½ÚµãµÄ×ÓËï½Úµã£¬µ«²»°üº¬Ö¸¶¨µÄ½Úµã±¾Éí¡£
setEnd() °Ñ¸Ã·¶Î§µÄ½áÊøµãÉèÖÃΪָ¶¨µÄ½ÚµãºÍÆ«ÒÆÁ¿¡£
setEndAfter() °Ñ¸Ã·¶Î§µÄ½áÊøµãÉèÖÃΪ½ôÁÚÖ¸¶¨½ÚµãµÄ½ÚµãÖ®ºó¡£
setEndBefore() °Ñ¸Ã·¶Î§µÄ½áÊøµãÉèÖÃΪ½ôÁÚÖ¸¶¨½Úµã֮ǰ¡£
setStart() °Ñ¸Ã·¶Î§µÄ¿ªÊ¼µãÉèÖÃΪָ¶¨µÄ½ÚµãÖеÄÖ¸¶¨Æ«ÒÆÁ¿¡£
setStartAfter() °Ñ¸Ã·¶Î§µÄ¿ªÊ¼µãÉèÖÃΪ½ôÁÚÖ¸¶¨½ÚµãµÄ½ÚµãÖ®ºó¡£
setStartBefore() °Ñ¸Ã·¶Î§µÄ¿ªÊ¼µãÉèÖÃΪ½ôÁÚÖ¸¶¨½Úµã֮ǰ¡£
surroundContents() °ÑÖ¸¶¨µÄ½Úµã²åÈëÎĵµ·¶Î§µÄ¿ªÊ¼µã£¬È»ºóÖØ¶¨·¶Î§ÖеÄËùÓнڵãµÄ¸¸½Úµã£¬Ê¹ËüÃdzÉΪвåÈëµÄ½ÚµãµÄ×ÓËï½Úµã¡£
toString() ·µ»Ø¸Ã·¶Î§±íʾµÄÎĵµÇøÓòµÄ´¿Îı¾ÄÚÈÝ¡£
VUE