DOM: 如何获取元素下的第一个子元素
2014-05-26 14:06
267 查看
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]; }
相关文章推荐
- jquery操作dom来获取第一个子元素
- 如何获取div下的除第一个子元素下的span外的其余兄弟元素下的span
- jquery通过操作dom来获取第一个子元素
- 如何获取用JS产生的DOM元素
- 如何获取一个dom元素的宽和高
- 如何获取DOM中当前获取焦点的元素
- 如何获取父元素下的最后一个子元素或者第一个子元素
- 如何使用dom获取 元素 将其隐藏
- JavaScript如何获得一个DOM元素的绝对位置?(获取元素位置,不依赖框架)
- DOM Core 获取某节点下最后一个子元素节点、第一个子元素节点、下一个兄弟元素节点、上一个兄弟元素节点
- 如何获取DOM中当前获取焦点的元素
- vuejs2.0如何获取dom元素自定义属性值
- 获取Dom元素的X/Y坐标
- javascript获取Dom节点元素
- dom元素的获取
- DOM 元素如何获得焦点
- 获取Dom元素的X/Y坐标
- 【分享】封装获取dom元素那些讨厌的位置
- 【记录】Javascript获取Dom元素位置
- DOM获取元素的子元素