javascript获取父节点问题

JavaScript015

javascript获取父节点问题,第1张

<body>

  <script>var a = Math.random()</script>

  <div>

    <script>

      //这里的要点是需要获取到当前的script标签

      //或者是这个script标签的父亲(div)

      

      //1 直接获取到div

      var all_div = document.getElementsByTagName('div')

      var div = all_div[all_div.length - 1]

      div.id = a

      //这个是利用了html代码加载执行时的顺序从上到下

      //而在这个script里代码执行的时候恰好解析到

      //最后一个div就是我们想要的div 所以直接查找所有的div

      //然后取最后一个div就是这个标签的父亲(div)

      

      

      //2 获取当前执行的script标签,然后取它的父亲

      function getCurrentScript(){

        if(document.currentScript){

          return document.currentScript

        }

        var scripts = document.getElementsByTagName('script')

        return scripts[scripts.length - 1]

      }

      

      var script = getCurrentScript()

      var div = script.parentNode

      div.id = a

      

      //这个是查找当前正在执行的脚本的标签

      //新版浏览器会有支撑的属性 currentScript

      //旧版本的话,就只好查找所有脚本,然后返回最后一个

      

    </script>

  </div>

</body>

这个是关于DOM的知识里的内容,是一个节点的parentNode成员

e.g. aNode.parentNode返回父节点

最常用的用法就是node.parentNode.removeChild(node)

删除某节点node

<div>

<button onclick="dosell(this)">确定</button>

</div>

<script>

function dosell(item){

var parentNode=item.parentNode 

alert(parentNode.tagName) //这里将会弹出DIV

}

</script>

如上,按钮上点击要加一个参数dosell(this)