10
09/2014
get first child
有趣的代码,来自 sofish
// 让我们假设要将它抽象出来,变成一个 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; }
或者
util.first = function(element) { if(!element) return; // 刚好 IE8 以下支持直接拿 firstChild return element[element.firstElementChild ? 'firstElementChild' : 'firstChild']; }
或者
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]; }