zoukankan      html  css  js  c++  java
  • JavaScript的DOM_操作内容

    一、innerText 属性

    <script type="text/javascript">
        window.onload = function(){
            var box = document.getElementById("box");
           // alert(box.innerText);//获取文本并过滤掉包含该文本的HTML标签(直接删除掉的)火狐不支持
            box.innerText='Mr.Lee';//设置值,替换掉原来有的文本
            box.innerText='<strong>Mr.Lee</strong>';//Strong标签不起作用,直接转义为纯文本
           
        };
    </script>
    </head>
    <body>
        <div id="box"><p>测试Div</p></div>
    </body>

      除了 Firefox 之外,其他浏览器均支持这个方法。但 Firefox 的 DOM3 级提供了另外一个类似的属性:textContent,做上兼容即可通用。

    <script>
         window.onload =function(){
            var box = document.getElementById("box");
            alert(box.textContent);
         };
    </script>
    </head>
    <body>
    <div id="box"><p>测试Div</p></div>
    </body>

       做兼容方案:

    <script type="text/javascript">
        window.onload = function(){
            var box = document.getElementById("box");
            
            alert(getInnerText(box));
            setInnerText(box,"wodedfadf");
            
           //兼容方案
            function getInnerText(element) {
                return (typeof element.textContent == 'string') ? element.textContent : element.innerText;
            }
            
            function setInnerText(element, text) {
                if (typeof element.textContent == 'string') {
              element.textContent = text;
                } else {
                    element.innerText = text;
                }
            }
           
        };
    </script>
    </head>
    <body>
        <div id="box"><p>测试Div</p></div>
    </body>

    二、innerHTML 属性

    <script>
         window.onload =function(){
            var box = document.getElementById("box");
            alert(box.innerHTML); //获取文本(不过滤 HTML标签)
            box.innerHTML = '<b>123</b>';     //可解析 HTML,结果文本加粗了;
            alert(box.innerHTML);
         };
    </script>
    </head>
    <body>
    <div id="box"><p>测试Div</p></div>
    </body>

      虽然 innerHTML 可以插入 HTML,但本身还是有一定的限制,也就是所谓的作用域元素,离开这个作用域就无效了。

    <script>
         window.onload =function(){
            var box = document.getElementById("box");
            box.innerHTML = "<script>alert('Lee');</script>"; //<script>元素不能被执行
            box.innerHTML = "<style>background:red;</style>"; //<style>元素不能被执行
         };
    </script>
    </head>
    <body>
    <div id="box"><p>测试Div</p></div>
    </body>

    三、outerText

      outerText 在取值的时候和 innerText 一样,同时火狐不支持,而赋值方法相当危险,他不单替换了文本内容,还将元素直接抹去。

    <script>
         window.onload =function(){
            var box = document.getElementById("box");
            alert(box.outerText);
            box.outerText = '<b>123</b>';
            alert(box.outerText);
            alert(document.getElementById('box')); //null,建议不去使用
         };
    </script>
    </head>
    <body>
    <div id="box"><p>测试Div</p></div>
    </body>

     四、outerHTML

      outerHTML 属性在取值和 innerHTML 一致,但和 outerText 也一样,很危险,赋值的之后会将元素抹去。

    <script>
         window.onload =function(){
            var box = document.getElementById("box");
            box.outerHTML = '123';
            alert(document.getElementById('box')); //null,建议不去使用,火狐旧版未抹去
         };
    </script>
    </head>
    <body>
    <div id="box"><p>测试Div</p></div>
    </body>
  • 相关阅读:
    CCPC2018-湖南全国邀请赛
    2019中山大学程序设计竞赛
    [POJ]poj1185 炮兵营地(状压DP)
    [CF]Codeforces Round #551 (Div. 2)
    [EOJ]2019 ECNU XCPC April Selection #1
    [现场赛]“新智认知”杯上海高校程序设计竞赛暨第十七届上海大学程序设计春季联赛
    欧拉函数 欧拉筛法 欧拉定理
    [CF]301D Yaroslav and Divisors
    岸芷汀兰的诗集(持续更新)
    模板柱(持续更新)
  • 原文地址:https://www.cnblogs.com/LO-ME/p/4589738.html
Copyright © 2011-2022 走看看