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>
  • 相关阅读:
    DSP、SSP、RTB、ADX(概念通俗解释)
    面试被问到你的优点和缺点时,该如何完美的回答
    android中文api(79)——Gallery
    RelativeLayout用代码兑现布局
    关于LayoutInflater的错误用法
    android 自定义照相机Camera黑屏 (转至 http://blog.csdn.net/chuchu521/article/details/8089058)
    Android camera 竖直拍照 获取竖直方向照片
    java动态代码的实现以及Class的卸载 (转至http://dustin.iteye.com/blog/46393)
    Java类变量和成员变量初始化过程
    下载最新android adt的方法
  • 原文地址:https://www.cnblogs.com/LO-ME/p/4589738.html
Copyright © 2011-2022 走看看