1、Range对象的基本概念

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

 <!DOCTYPE html>
 <html>
 <head>
 <meta charset="UTF-8">
     <title></title>
 </head>
 <body>
     <script>
         function rangeTest(){
             var html;
             showRangeDiv = document.getElementById("showRange");
             selection = document.getSelection();
             if(selection.rangeCount>0){
                 html = "你选取了>"+selection.rangeCount+"<内容<br>";
                 for (var i = 0; i < selection.rangeCount; i++) {
                     var range = selection.getRangeAt(i);
                     html+="第"+(i+1)+"段内容为:"+range+"<br>";
                 }
                 showRangeDiv.innerHTML = html;
                 }
             }
     </script>
     Selection对象与Range对象的使用
     <input type="button" value="点击我" onclick="rangeTest()"></input>
     <div id="showRange"></div>
 </body>
 </html>

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

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

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

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

 <body>
 <script>
     function deleteRangeContent(onlyContent){
         var div = document.getElementById("div");
         var rangeObj = document.createRange();
         if(onlyContent){
             rangeObj.selectNodeContents(div);
             rangeObj.deleteContents();
         }else{
             rangeObj.selectNode(div);
             rangeObj.deleteContents();
         }
     }
 </script>
     <div id="div" style="background-color:#e0a0b0;width=300px;height=50px">
         元素中的内容
     </div>
     <button onclick="deleteRangeContent(true)">删除内容</button>
     <button onclick="deleteRangeContent(false)">删除元素</button>
 </body>

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

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

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

 <body>
     <script>
         function deleteChar(){
             var div = document.getElementById("myDiv");
             var textNode = div.firstChild;
             var rangeObj = document.createRange();
             rangeObj.setStart(textNode,1);
             rangeObj.setEnd(textNode,4);
             rangeObj.deleteContents();
         }
     </script>
     <div id="myDiv" style="color:red">这段文字是用来删除的</div>
     <button onclick="deleteChar()">删除文字</button>
 </body>

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

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

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

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

 <body>
     <script>
         function deleteRow(){
             var table = document.getElementById("myTable");
             if (table.rows.length>0) {
                 var row = table.rows[0];
                 var rangeObj = document.createRange();
                 rangeObj.setStartBefore(row);
                 rangeObj.setEndAfter(row);
                 rangeObj.deleteContents();
             };
         }
     </script>
     <table id="myTable" border="1" cellspacing="0" cellpadding="0">
         <tr>
             <td>内容1</td>
             <td>内容2</td>
         </tr>
         <tr>
             <td>内容3</td>
             <td>内容4</td>
         </tr>
     </table>
     <button onclick="deleteRow()">删除第一行</button>
 </body>

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

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

    本节继续介绍range对象的方法,包括cloneRange,cloneContents,extraContents,createContextual,createContextual-Fragment ...

  2. HTML5 页面编辑API之Range对象

    在 HTML5 中,一个 Range 对象代表页面上的一段连续区域.通过 Range 对象,可以获取或修改页面上的任何区域.包含获取,修改,删除和替换等操作. 一:获取range对象的值 Range对 ...

  3. HTML5编辑API之Range对象

    Range对象代表页面上的一段连续区域,通过Range对象,可以获取或修改页面上的任何区域,可以通过如下创建一个空的Range对象,如下: var  range = document.createRa ...

  4. HTML5 编辑 API 之 Range 对象(一)

     一.Range 对象基本概念 通过使用 Range 对象所提供的方法实现一个鼠标选取内容,通过点击按钮打印出选中内容,当然注意在不同的浏览器下可选中的内容数量是不同的. <!DOCTYPE h ...

  5. HTML5 编辑 API 之 Range 对象(二)

    1.Range.cloneContents()The Range.cloneContents() returns a DocumentFragment copying the objects of t ...

  6. Java学习笔记之---API的应用

    Java学习笔记之---API的应用 (一)Object类 java.lang.Object 类 Object 是类层次结构的根类.每个类都使用 Object 作为超类.所有对象(包括数组)都实现这个 ...

  7. html5学习笔记一

    HTML5学习笔记 <video>标记:定义视频,Ogg.MPEG4.WebM三种格式 <video src=”movie.ogg”  controls=”controls”> ...

  8. 学习笔记:Javascript 变量 包装对象

    学习笔记:Javascript 变量 包装对象 如下代码,可以输出字符的长度. var str = "Tony"; str.length; 这时再试试以下代码,返回是 undefi ...

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

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

随机推荐

  1. ICE第三篇------一些疑难点

    1 间接代理 参考http://blog.sina.com.cn/s/blog_53e8499c0100lkoo.html IceGrid用于支持分布式网络服务应用,一个IceGrid域由一个注册表( ...

  2. ecos的app包管理

    install 安装 install app_name1 app_name2 有时候要用-o参数,把所有安装过程需要的参数带入进去(安装过程的参数放在app/$app_name/task.php里in ...

  3. SQL Server 2012 - Transact-SQL

    变量 --全局变量 select @@VERSION --局部变量 declare @i int set @i=5 select @i 通配符:   like   'joh%',  %任意长度的任意字 ...

  4. Apache和Nginx的对比

    Apache与Nginx的优缺点比较 1.nginx相对于apache的优点: 轻量级,同样起web 服务,比apache 占用更少的内存及资源 抗并发,nginx 处理请求是异步非阻塞的,而apac ...

  5. linux 驱动入门2

    不吃苦中苦,难为人上人.努力,给老婆孩子提供个良好的生活居住环境. http://www.cnblogs.com/nan-jing/articles/5775038.html 这里提到.有这么多牛人. ...

  6. mysql show命令

    MySQL中有很多的基本命令,show命令也是其中之一,在很多使用者中对show命令的使用还容易产生混淆,本文汇集了show命令的众多用法. 1. show tables或show tables fr ...

  7. STM32驱动DHT11温湿度传感器

    DHT11 是一款湿温度一体化的数字传感器.该传感器包括一个电阻式测湿元件和一个 NTC 测温元件,并与一个高性能 8 位单片机相连接.通过单片机等微处理器简单的电路连接就能够 实时的采集本地湿度和温 ...

  8. Freemarker入门案例

    Freemarker入门案例 首先需要到freemarker官方下载freemarker的jar包,导入到项目中,如:freemarker-2.3.19.jar 1.先建个freemarker的工具类 ...

  9. IOS开发中Xcode常用插件安装与管理(转)

    XCode中插件管理工具:Alcatraz    转自http://www.cocoachina.com/industry/20140506/8325.html 苹果现在的成绩得益于其始终如一的坚持. ...

  10. VMVare 桥接上网

    桥接模式设置小解: 第1步 虚拟机下fedora安装好后,打开VM虚拟机的菜单栏,单击编辑------虚拟网络编辑器,选择“主机虚拟网络 映射”标签,然后把VMnet0 手动选择为你本地的物理网卡(要 ...