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() | ·µ»Ø¸Ã·¶Î§±íʾµÄÎĵµÇøÓòµÄ´¿Îı¾ÄÚÈÝ¡£ |