• 【javascript】DOM操作方法(5)——Element节点的属性


    1.特性属性

    Element.attributes  //返回当前元素节点的所有属性节点
    Element.id  //返回指定元素的id属性,可读写
    Element.tagName  //返回指定元素的大写标签名
    Element.innerHTML   //返回该元素包含的HTML代码,可读写
    Element.outerHTML  //返回指定元素节点的所有HTML代码,包括它自身和包含的的所有子元素,可读写
    Element.className  //返回当前元素的class属性,可读写
    Element.classList  //返回当前元素节点的所有class集合
    Element.dataset   //返回元素节点中所有的data-*属性。

     (1)Element.attributes //返回当前元素节点的所有属性节点

    <script>
    function myFunction() {
        var x = document.getElementById("myBtn").attributes[0].length;
        document.getElementById("demo").innerHTML = x;
    }
    </script>

    (2)Element.outerHTML //返回指定元素节点的所有HTML代码,包括它自身和包含的的所有子元素,可读写

    1)innerHTML:
      从对象的起始位置到终止位置的全部内容,不包括Html标签。
    2)outerHTML:
      除了包含innerHTML的全部内容外, 还包含对象标签本身。
    <script>
      var html = document.getElementById("p1").outerHTML;
      alert(html);
    </script>

    返回结果:<p>outerHTML</p>

    <script>
      var html = document.getElementById("p2").innerHTML;
      alert(html);
    </script>

    返回结果:innerHTML

    (3)Element.classList //返回当前元素节点的所有class集合

    classList的一些方法:

    length: {number}, /* # of class on this element */
    add: function() { [native code] },
    contains: function() { [native code] },
    item: function() { [native code] }, /* by index */
    remove: function() { [native code] },
    toggle: function() { [native code] }

    1)新增css类

    myDiv.classList.add("myClass");

    2)删除css类

    myDiv.classList.remove("myClass");

    3)反转css类

    myDiv.classList.toggle("myClass");

    当myClass存在时,删除该属性,当myClass不存在时,使用该属性

    4)检测myClass属性是否存在

    myDiv.classList.contains("myClass");

    2.尺寸属性

    Element.clientHeight   //返回元素节点可见部分的高度
    Element.clientWidth   //返回元素节点可见部分的宽度
    Element.clientLeft   //返回元素节点左边框的宽度
    Element.clientTop   //返回元素节点顶部边框的宽度
    Element.scrollHeight  //返回元素节点的总高度
    Element.scrollWidth  //返回元素节点的总宽度
    Element.scrollLeft   //返回元素节点的水平滚动条向右滚动的像素数值,通过设置这个属性可以改变元素的滚动位置
    Element.scrollTop   //返回元素节点的垂直滚动向下滚动的像素数值
    Element.offsetHeight   //返回元素的垂直高度(包含border,padding)
    Element.offsetWidth    //返回元素的水平宽度(包含border,padding)
    Element.offsetLeft    //返回当前元素左上角相对于Element.offsetParent节点的垂直偏移
    Element.offsetTop   //返回水平位移
    Element.style  //返回元素节点的行内样式

    实时获取鼠标坐标值

    <script type="text/javascript">
      window.onload = function(){
        var mydiv = document.createElement("div");
        mydiv.setAttribute("id","div1");
        mydiv.style.position = "absolute";
        document.body.appendChild(mydiv);
        document.addEventListener("mousemove",function(e){
            var my = document.getElementById("div1");
            my.style.left = e.clientX+"px";
            my.style.top = e.clientY+"px";
            my.innerHTML = e.clientX+ ":" +e.clientY;
        });
      }
    </script>

    3.节点相关属性

    Element.children   //包括当前元素节点的所有子元素
    Element.childElementCount   //返回当前元素节点包含的子HTML元素节点的个数
    Element.firstElementChild  //返回当前节点的第一个Element子节点  
    Element.lastElementChild   //返回当前节点的最后一个Element子节点  
    Element.nextElementSibling  //返回当前元素节点的下一个兄弟HTML元素节点
    Element.previousElementSibling  //返回当前元素节点的前一个兄弟HTML节点
    Element.offsetParent   //返回当前元素节点的最靠近的、并且CSS的position属性不等于static的父元素。

     (1)Element.offsetParent //返回当前元素节点的最靠近的、并且CSS的position属性不等于static的父元素。

    涉及到偏移量的主要是offsetLeft、offsetTop、offsetHeight、offsetWidth这四个属性。

    定位父级offsetParent的定义是:与当前元素最近的经过定位(position不等于static)的父级元素,主要分为下列几种情况 

    【1】元素自身有fixed定位,offsetParent的结果为null

    <div id="test" style="position:fixed"></div>    
    <script>
    //firefox并没有考虑固定定位的问题,返回<body>,其他浏览器都返回null
    console.log(test.offsetParent);
    </script>

    结果:

    【2】元素自身无fixed定位,且父级元素都未经过定位,offsetParent的结果为<body>

    <div id="test"></div>    
    <script>
    console.log(test.offsetParent);
    </script>

    结果:

    【3】元素自身无fixed定位,且父级元素存在经过定位的元素,offsetParent的结果为离自身元素最近的经过定位的父级元素(就近原则)

    <div id="demo" style="position:absolute">
        <div id="demo1" style="position:absolute">
            <div id="test"></div>  
        </div>
    </div>  
    <script>
    console.log(test.offsetParent);
    </script>

    结果:

    【4】<body>元素的parentNode是null

    console.log(document.body.offsetParent);//null

     页面偏移详细教程:http://www.cnblogs.com/xiaohuochai/p/5828369.html

  • 相关阅读:
    【SICP练习】129 练习3.60
    【SICP练习】128 练习3.59
    【SICP练习】127 练习3.58
    【SICP练习】126 练习3.57
    【SICP练习】125 练习3.56
    【SICP练习】124 练习3.55
    【SICP练习】123 练习3.54
    【SICP练习】122 练习3.53
    【SICP练习】121 练习3.52
    【SICP练习】120 练习3.51
  • 原文地址:https://www.cnblogs.com/Horsonce/p/7676592.html
Copyright © 2020-2023  润新知