[html5] 学习笔记-编辑 API 之 Range 对象(一)

1、Range对象的基本概念

一个Range对象代表页面上的一段连续区域,通过Range对象,可以获取或修改网页上的任何区域。

 1 <!DOCTYPE html>
 2 <html>
 3 <head>
 4 <meta charset="UTF-8">
 5     <title></title>
 6 </head>
 7 <body>
 8     <script>
 9         function rangeTest(){
10             var html;
11             showRangeDiv = document.getElementById("showRange");
12             selection = document.getSelection();
13             if(selection.rangeCount>0){
14                 html = "你选取了>"+selection.rangeCount+"<内容<br>";
15                 for (var i = 0; i < selection.rangeCount; i++) {
16                     var range = selection.getRangeAt(i);
17                     html+="第"+(i+1)+"段内容为:"+range+"<br>";
18                 }
19                 showRangeDiv.innerHTML = html;
20                 }
21             }
22     </script>
23     Selection对象与Range对象的使用
24     <input type="button" value="点击我" onclick="rangeTest()"></input>
25     <div id="showRange"></div>
26 </body>
27 </html>

2、Range对象的SelectNode方法,SelectNodeContents方法,deleteContents方法

SelectNode方法用于将Range对象的起点,指定为某个节点的起点,将Range的终点,指定为该节点的终点,使Range对象的区域包含该节点。

SelectNodeContents方法用于将Range对象的起点,指定为某个节点所有内容的起点,将Range对象的终点,指定为某个节点所有内容的终点,使Range对象的区域包含该节点的所有内容。

deleteContents方法,用于将Range对象所包含的内容,从页面中进行删除。

 1 <body>
 2 <script>
 3     function deleteRangeContent(onlyContent){
 4         var div = document.getElementById("div");
 5         var rangeObj = document.createRange();
 6         if(onlyContent){
 7             rangeObj.selectNodeContents(div);
 8             rangeObj.deleteContents();
 9         }else{
10             rangeObj.selectNode(div);
11             rangeObj.deleteContents();
12         }
13     }
14 </script>
15     <div id="div" style="background-color:#e0a0b0;width=300px;height=50px">
16         元素中的内容
17     </div>
18     <button onclick="deleteRangeContent(true)">删除内容</button>
19     <button onclick="deleteRangeContent(false)">删除元素</button>
20 </body>

3、Range对象有很多用来操作页面内容的方法,有setStart、setEnd、setStartBefore、setStartAfter、setEndBefore、setEndAfter方法

setStart用来将某个节点的某个位置,设置为Range对象的起点位置

setEnd用来将某个节点的某个位置,设置为Range对象的结束位置

 1 <body>
 2     <script>
 3         function deleteChar(){
 4             var div = document.getElementById("myDiv");
 5             var textNode = div.firstChild;
 6             var rangeObj = document.createRange();
 7             rangeObj.setStart(textNode,1);
 8             rangeObj.setEnd(textNode,4);
 9             rangeObj.deleteContents();
10         }
11     </script>
12     <div id="myDiv" style="color:red">这段文字是用来删除的</div>
13     <button onclick="deleteChar()">删除文字</button>
14 </body>

setStartBefore用于将某个节点的起点位置,设置为Range对象所代表区域的起点位置

setStartAfter用于将某个节点的终点位置,设置为Range对象所代表区域的起点位置

setEndBefore用于将某个节点的起点位置,设置为Range对象所代表区域的终点位置

setEndAfter用于将某个节点的终点位置,设置为Range对象所代表区域的终点位置

 1 <body>
 2     <script>
 3         function deleteRow(){
 4             var table = document.getElementById("myTable");
 5             if (table.rows.length>0) {
 6                 var row = table.rows[0];
 7                 var rangeObj = document.createRange();
 8                 rangeObj.setStartBefore(row);
 9                 rangeObj.setEndAfter(row);
10                 rangeObj.deleteContents();
11             };
12         }
13     </script>
14     <table id="myTable" border="1" cellspacing="0" cellpadding="0">
15         <tr>
16             <td>内容1</td>
17             <td>内容2</td>
18         </tr>
19         <tr>
20             <td>内容3</td>
21             <td>内容4</td>
22         </tr>
23     </table>
24     <button onclick="deleteRow()">删除第一行</button>
25 </body>
时间: 2024-11-03 05:42:42

[html5] 学习笔记-编辑 API 之 Range 对象(一)的相关文章

[html5] 学习笔记- 编辑API之Range对象(二)

本节继续介绍range对象的方法,包括cloneRange,cloneContents,extraContents,createContextual,createContextual-Fragment,insertNode,compareBoundaryPoints,collapse,detach方法. 1.cloneRange,cloneContents,extraContents方法 cloneRange:对当前的range对象复制,返回复制的对象 1 <body> 2 <scrip

HTML5编辑API之Range对象

Range对象代表页面上的一段连续区域,通过Range对象,可以获取或修改页面上的任何区域,可以通过如下创建一个空的Range对象,如下: var range = document.createRange(); 在html5中,每一个浏览器窗口及每一个窗口中都有一个selection对象,代表用户鼠标在页面中所选取的区域,(注意:经过测试IE9以下的浏览器不支持Selection对象), 可以通过如下语句创建selection对象: var selection = document.getSel

HTML5 页面编辑API之Range对象

在 HTML5 中,一个 Range 对象代表页面上的一段连续区域.通过 Range 对象,可以获取或修改页面上的任何区域.包含获取,修改,删除和替换等操作. 一:获取range对象的值 Range对象提供鼠标选取功能,通过Range对象可以获得选取的内容,以及选取的内容的个数. var s  = document.getSelection();//此方法获得选中内容,获取range对象 s.rangeCount;//获得选中个数 1 function rangeText(){ 2 var e_

HTML5 编辑 API 之 Range 对象(二)

1.Range.cloneContents()The Range.cloneContents() returns a DocumentFragment copying the objects of type Node included in the Range. SyntaxdocumentFragment = range.cloneContents(); Examplerange = document.createRange();range.selectNode(document.getEle

html5学习笔记(7)

html5 编辑API之Range对象 1: Range对象代表页面上的一段连续的区域: Selection对象和Range对象 <!DOCTYPE html> <html> <head lang="en">     <meta charset="UTF-8">     <title></title> </head> <body>     <script>  

HTML5学习笔记(二)——表单1

表单一直是网页必不可少的一部分,一直以来,表单的作用被无限扩展,发展出了诸多新奇的用法,老版的HTML只支持很少的一部分常用表单,许多的新表单都需要借助CSS与JavaScript语言来进行构建,现在HTML5来了,她带来了新的表单,这些强大的表单项,可以省去一大块复杂的JavaScript代码,很值得去学习. 而且在新的表单里面,不再像以前每个表单都必须位于<form></form>之内,只要在<form></form>内定义一个id,然后在网页任何位置都

html5学习笔记(3)--主题结构元素-1

html5学习笔记(3)--主题结构元素-1 Article元素 以下为对应代码: <!DOCTYPE html> <html> <head lang="en"> <meta charset="UTF-8"> <title></title> </head> <body> <article> <header> <h1>极客学院</h

Python学习笔记_Chapter 6定制数据对象

1. 有用的BIF a. 判断字符串中是否包含子字符串 1 if s_a in s_b: b. pop() 描述:从指定的列表位置删除并返回一个数据项. 1 (sarah_name,sarah_dob)=l_rah.pop(0),l_rah.pop(0) 2 #pop(0)中0位置为list中第一个数据项 3 #第一次执行pop赋值给sarah_name c. strip() 输入的是字符串,返回的是列表 d.open 读文件时可以多种方式打开文件,取出的数据是不同的,可以是文本也可以是二进制.

Html5学习笔记1 元素 标签 属性

<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>HTML5学习笔记</title> </head> <body bgcolor="#90ee90"> 1.Html5的元素<br/><br/> 元素指的是从開始标签到结束标签的全部代码<