美文网首页
HTML5--Range对象概念

HTML5--Range对象概念

作者: 废废_siri | 来源:发表于2018-11-22 23:05 被阅读0次

Range对象

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

<html>
    <head>
        <meta charset="UTF-8">
        <title>
        range demo
        </title>
        <meta charset="UTF-8"></head>
    </head>
    <body>
        <h3>Range与Selection对象的应用</h3>
        <input type="submit" value="click me!" onclick="rangeTest()">
        <div id="showRange"></div>
        <script>
            function rangeTest(){
                var html;//定义一个html变量来承载div中的内容
                showRange = document.getElementById("showRange");
                Selection = document.getSelection();//获取selection对象
                if(Selection.rangeCount>0){   
                //判断选取了selection选择了几块区域,firefox浏览器按ctrl键可选择2块区域;safari和chrome只能选择1块区域
                    html="您选择了"+Selection.rangeCount+"块区域的内容<br/>";
                    for(var i=0;i<Selection.rangeCount;i++)
                    {   
                        var range = Selection.getRangeAt(i); //获取range对象
                        html+="第"+(i+1)+"段内容为:"+range;
                    }
                }
                    showRange.innerHTML = html;
            }
        </script>
    </body>
</html>

Range方法之selectNode、selectNodeContents、deleteContents方法

选取一块区域

<html>
    <head>
        <meta charset="UTF-8">
        <title>
        selectNode、selectNodeContents、deleteContents demo
        </title>
    </head>
    <body>
        <div id="div" style="background-color: aqua;width: 200px;height: 200px;">删除内容或者元素</div>
        <button onclick="deleteContents(true)">删除内容</button>
        <button onclick="deleteContents(false)">删除元素</button>
        <script>
            function deleteContents(onlyContent){
                var div = document.getElementById('div');
                var rangeObj = document.createRange();  //创建range对象
                if(onlyContent){
                    rangeObj.selectNodeContents(div);  //选择div元素中的内容。selectNodeContents的选择是从元素中内容的开始到内容的结束
                    rangeObj.deleteContents();         //删除div中的内容
                }else{
                    rangeObj.selectNode(div);          //选择div元素。selectNode的选择是从元素的开始到元素的结束。注:这里选择的是整个元素及里面的内容
                    rangeObj.deleteContents();         //删除div元素及其内容
                }
            } 
        </script>
    </body>
</html>

Range方法之setStart、setEnd方法

setStart表示某个节点的range对象的起点位置,
setEnd表示某个节点的range对象的终点位置

<html>
<head>
    <meta charset="UTF-8">
    <title>
        setStart、setEnd demo
    </title>
</head>
<body>
    <div id="myDiv" style="color:brown;">
        这是待删除的内容
    </div>
    <button onclick="deleteChar()">click me</button>
    <script>
        function deleteChar() {
            var div = document.getElementById("myDiv");
            var textNode = div.firstChild;          //div.firstChild:返回div的文档的首个子节点
            var rangeObj = document.createRange();
            rangeObj.setStart(textNode, 1);          //div的文档的首个子节点的第一个字段为起点
            rangeObj.setEnd(textNode, 4);            //div的文档的首个子节点的第四个字段为终点
            rangeObj.deleteContents();               //删除选中的内容 
        }
    </script>
</body>
</html>

Range方法之setStartBefore、setEndAfter、setStartAfter、setEndBefore

setStartBefore:表示用于将某个节点的起点位置设置为range对象的起点位置。
setStartAfter:表示用于将某个节点的终点位置设置为range对象的起点位置。
setEndBefore:表示用于将某个节点的起点位置设置为range对象的终点位置。
setEndAfter:表示用于将某个节点的终点位置设置为range对象的终点位置。

<html>

<head>
    <meta charset="UTF-8">
    <title>
      setStartBefore、setEndAfter demo
    </title>
</head>
<body>
    <table id='myTable' border="1px" cellspacing='0' cellpadding='0'>
        <thead>
            <td>第一列</td>
            <td>第二列</td>
        </thead>
        <tbody>
            <td>1</td>
            <td>2</td>
        </tbody>
    </table>
    <button onclick="deleteRow()">click me</button>
    <script>
        function deleteRow(){
            var table = document.getElementById("myTable");
            if(table.rows.length>0){        //判断表格的行数是否大于0
                row = table.rows[0];        //获取表格的第一行
                var rangeObj = document.createRange();
                rangeObj.setStartBefore(row);
                rangeObj.setEndAfter(row);
                rangeObj.deleteContents();
            }
        }
    </script>
</body>
</html>

相关文章

  • HTML5--Range对象概念

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

  • VBA-JC第5节|面向对象基本原理与Excel对象结构

    最近更新:'2019-05-14' 类与对象概念Excel对象结构 1. 类与对象概念 1.1面向对象的基本概念 ...

  • 对象

    对象的世俗定义 我对对象的定义 对象概念的存在 空和无也是对象 对象包涵什么 对象的分类 对象概念的延伸 声明:全...

  • 如何在线学习PHP开发(五)面向对象

    面向对象编程的基本概念 类和对象的关系 类的概念image.png 对象的概念image.png 类和对象的关系i...

  • 面向对象概念

    面向对象 1.面向过程编程,面向对象编程都是需要熟练掌握的两种编程范式. 面向过程,指的是解决问题的步骤,设计一条...

  • 对象的概念

    几点需要注意的的: null本身是一个值类型,但是typeof null 得到的却是一个 object 这是js的...

  • 面向对象概念

    封装、继承、多态 封装:是隐藏具体实现,以公开方法的形式将功能暴露出来继承:是指子类继承父类的属性和方法多态:同一...

  • python 类和对象

    类和对象 目标 类和对象的概念 类和对象的关系 类的设计 01. 类和对象的概念 类 和 对象 是 面向对象编程的...

  • JavaScript高级

    1 面向对象操作 - 回顾对象的基本概念 - 面向对象的相关概念 - 面向对象的特征和操作的实现方式 - 小练习 ...

  • 【10Day】Joshua—《超越人机交互》读书笔记(8)

    基于对象的概念模型--概念模型的混合搭配 2.3.2 基于对象的概念模型 第二大类的概念模型是基于对象或人造物(...

网友评论

      本文标题:HTML5--Range对象概念

      本文链接:https://www.haomeiwen.com/subject/oryrqqtx.html