zoukankan      html  css  js  c++  java
  • HTML5学习笔记4--API Range对象(一)

    Range对象基本用法

    效果图如下(在谷歌浏览器下的展示)

    代码如下

    <!DOCTYPE html>
    <html>
    <head lang="en">
        <meta charset="UTF-8">
        <title></title>
    </head>
    <body>
    <script>
        function test()
        {
            var html="";
            var showRange=document.getElementById("test");
            selection=document.getSelection();
            if (selection.rangeCount <= 0) {
            } else {
                for (var i = 0; i < selection.rangeCount; i++) {
                    var range = selection.getRangeAt(i);
                    html+="您选取的内容为["+range+"]</br>";
                }
                showRange.innerHTML=html;
            }
        }
    </script>
    <p>为中国奥运健儿加油</p>
    <input type="button" onclick="test()" value="点击"/>
    <div id="test"></div>
    </body>
    </html>

    在火狐浏览器下的展示

    为什么会出现这种情况呢,因为火狐浏览器下可以针对不连续的内容多选.

    Range对象之SelectNode和selectNodeContents方法

    效果图如下

    代码内容如下:

    <!DOCTYPE html>
    <html>
    <head lang="en">
        <meta charset="UTF-8">
        <title></title>
    </head>
    <body>
    <script>
        function deleteRangeContent(statusContent)
        {
          var div=document.getElementById("range");
            var rangeObject=document.createRange();
            if(statusContent)
            {
                rangeObject.(div);
                rangeObject.deleteContents();
            }
            else
            {
                rangeObject.selectNode(div);
                rangeObject.deleteContents();
            }
        }
    </script>
    <div style="300px;height: 30px;background-color: #ec7dff" id="range">查看效果</div>
    <input type="button" onclick="deleteRangeContent(true)" value="删除div内部内容"/>
    <input type="button" onclick="deleteRangeContent(false)" value="删除div及内部内容"/>
    </body>
    </html>

    selectNodeContents是选定div里边的内容,selectNode是选定div包括里边的内容.

    Range对象之setStartsetEnd方法

    效果图如下

    代码内容如下

    <!DOCTYPE html>
    <html>
    <head lang="en">
        <meta charset="UTF-8">
        <title></title>
    </head>
    <body>
    <script>
        function deleteFromEnd()
        {
            var textNode=document.getElementById("test").firstChild;
            var rangeObject=document.createRange();
            rangeObject.setStart(textNode,1);
            rangeObject.setEnd(textNode,4);
            rangeObject.deleteContents();
        }
    </script>
    <div id="test">中国奥运军团是所向披靡的战无不胜的</div>
    <button onclick="deleteFromEnd()">删除</button>
    </body>
    </html>

    我们误以为是会删除”中国奥运”四个字,但是实际上删除的只有“国奥运”.

    Range对象之setStartBeforesetEndAfter方法

    效果图如下

    代码如下

    <!DOCTYPE html>
    <html>
    <head lang="en">
        <meta charset="UTF-8">
        <title></title>
        <style>
            table,tr,td
            {
                border:1px solid;
            }
        </style>
    </head>
    <body>
    <script>
        function deleteContent()
        {
            var tableElement=document.getElementById("tb");
            if(tableElement.rows.length>0)
            {
                var range=document.createRange();
                var row=tableElement.rows[0];
                range.setStartBefore(row);
                range.setEndAfter(row);
                range.deleteContents();
            }
        }
    </script>
    <table id="tb" style="border:1px solid;">
        <tr>
            <td>第一行第一列</td>
            <td>第一行第二列</td>
        </tr>
        <tr>
            <td>第二行第一列</td>
            <td>第二行第二列</td>
        </tr>
    </table>
    <button onclick="deleteContent()">删除table行</button>
    </body>
    </html>

    该实例中定义了table的开始位置和结束位置来删除.

  • 相关阅读:
    mysql插入中文数据变成问号怎么处理
    项目第二阶段
    项目第一阶段
    项目测试
    常用mysql操作
    常用的mysql操作
    mysql操作
    土地档案管理系统需求分析
    土地档案管理系统架构图,ER图,用例图
    Load data local infile
  • 原文地址:https://www.cnblogs.com/cby-love/p/5769260.html
Copyright © 2011-2022 走看看