• parentNode,offsetParent


    元素.parentNode : 父节点   只读 属性 当前节点的父级节点 没有兼容性问题 可放心使用

    <!DOCTYPE HTML>
    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
    <title>无标题文档</title>
    <script>
    window.onload = function() {
        var aA = document.getElementsByTagName('a');
        for (var i=0; i<aA.length; i++) {
            aA[i].onclick = function() {
                this.parentNode.style.display = 'none';
            }
            
        }
        
        
    }
    </script>
    </head>
    
    <body>
    <ul id="ul1">
      <li>11111 <a href="javascript:;">隐藏</a></li>
      <li>22222 <a href="javascript:;">隐藏</a></li>
      <li>33333 <a href="javascript:;">隐藏</a></li>
      <li>44444 <a href="javascript:;">隐藏</a></li>
    </ul>
    </body>
    </html>

    元素.offsetParent : 只读 属性

    如果没有定位父级,默认是body

    <!DOCTYPE HTML>
    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
    <title>无标题文档</title>
    <style>
    div {padding: 40px 50px;}
    #div1 {background: red;}
    #div2 {background: green;}
    #div3 {background: orange;}
    </style>
    <script>
    window.onload = function() {
        var oDiv3 = document.getElementById('div3');
        alert( oDiv3.parentNode.id );//弹出div2
        alert( oDiv3.offsetParent.id );//弹出body1
    }
    </script>
    </head>
    
    <body id="body1">
        <div id="div1">
            <div id="div2">
                <div id="div3"></div>
            </div>
        </div>
    </body>
    </html>


    如果有定位父级则弹出父级  若定位多个父级   则弹出离当前元素最近的一个有定位属性的父节点

    <!DOCTYPE HTML>
    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
    <title>无标题文档</title>
    <style>
    div {padding: 40px 50px;}
    #div1 {background: red; position: relative}
    #div2 {background: green;position: relative}
    #div3 {background: orange;}
    </style>
    <script>
    window.onload = function() {
        var oDiv3 = document.getElementById('div3');
        
        alert( oDiv3.offsetParent.id );//弹出div2
     } </script> </head> <body id="body1"> <div id="div1"> <div id="div2"> <div id="div3"></div> </div> </div> </body> </html> </html>


    ie7以下,如果当前元素没有定位默认是body,如果有定位则是html

    <!DOCTYPE HTML>
    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
    <title>无标题文档</title>
    <style>
    div {padding: 40px 50px;}
    #div1 {background: red; }
    #div2 {background: green;}
    #div3 {background: orange;position: relative}
    </style>
    <script>
    window.onload = function() {
        var oDiv3 = document.getElementById('div3');
        //alert( oDiv3.parentNode.id );//弹出div2
        alert( oDiv3.offsetParent.tagName );//ie7弹出html IE8以上弹出body
    }
    </script>
    </head>
    
    <body id="body1">
        <div id="div1">
            <div id="div2">
                <div id="div3"></div>
            </div>
        </div>
    </body>
    </html>
    </html>

    ie7以下,如果当前元素的某个父级触发了layout,那么offsetParent就会被指向到这个触发了layout特性的父节点上

    <!DOCTYPE HTML>
    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
    <title>无标题文档</title>
    <style>
    div {padding: 40px 50px;}
    #div1 {background: red; zoom: 1;}
    #div2 {background: green;}
    #div3 {background: orange;}
    </style>
    <script>
    window.onload = function() {
        
        var oDiv3 = document.getElementById('div3');
        alert( oDiv3.offsetParent.id );//ie7以下弹出的是div1,其他的弹出是BODY1
    }
    </script>
    </head>
    
    <body id="body1">
        <div id="div1">
            <div id="div2">
                <div id="div3"></div>
            </div>
        </div>
    </body>
    </html>





  • 相关阅读:
    C#中的json操作
    Webdriver 怎么操作 scrollbar 下拉框
    jQuery 选择器
    BUYING FEED (第三届省赛)
    AMAZING AUCTION (第三届省赛)
    聪明的“KK” (第三届省赛)
    网络的可靠性 (第三届省赛)
    如何通俗理解——>集群、负载均衡、分布式
    常用的shell命令
    javascript实现原生ajax
  • 原文地址:https://www.cnblogs.com/Xuman0927/p/5482868.html
Copyright © 2020-2023  润新知