zoukankan      html  css  js  c++  java
  • DOM: 如何获取元素下的第一个子元素

    Element.firstChild ?,是的,这是第一种方法,当然,通常来说支持 W3C 规范的浏览器,如 Firefox 等取到的应该是 TEXT_NODE。很早之前,或者说现在最流行的方法可能是:

    // 让我们假设要将它抽象出来,变成一个 util 对象的方法
    var util = {};
    
    util.first = function(element) {
      if(!element) return;
    
    var first= element.firstChild;
      // 处理 w3c 浏览器中第一个子元素是 TEXT_NODE
      // 并且需要考虑到有没有 COMMENT_NODE 的情况
      while(first && first.nodeType !==1) first = first.nextSibling;
      return first;
    }

    现在浏览器支持一个叫Element.firstElementChild 的属性,可以获取到第一个为元素的子节点。那么,我们的 API 可以变得更简单:

    util.first = function(element) {
      if(!element) return;
    
    // 刚好 IE8 以下支持直接拿 firstChild
      return element[element.firstElementChild ? 'firstElementChild' : 'firstChild'];
    }

    另外的两个实现方法:

    // 通过 HTML5 的 querySelector,及 getElementsByTagName
    util.first = function(element, tag) {
      if(!element) return;
      tag = tag || '*';;
      return element.querySelector ? element.querySelector(tag) : element.getElementsByTagName(tag)[0];
    }
    
    // IE6 也支持的 children
    util.first = function(element) {
      return element && element.children[0];
    }
  • 相关阅读:
    并发编程---守护进程
    并发编程---Process对象的其他属性或方法
    并发编程---开启进程方式---查看进程pid
    并发编程---操作系统
    ie浏览器的css bug
    链接内的图片与文字如何对齐?
    inline元素特性
    最大流EK算法模板
    数据结构 链式表
    运算表达式 栈应用
  • 原文地址:https://www.cnblogs.com/fengyuqing/p/js-firstChild.html
Copyright © 2011-2022 走看看