基本概念 document.createDocumentFragment 方法会创建一个 DocumentFragment 对象,该对象是一个存在于 DOM 树之外的 DOM 节点.它有一个非常有用的特性:当 DocumentFragment 节点被插入 DOM 树时,插入 DOM 树的其实并不是 DocumentFragment 节点,而是它的所有子孙节点(即 DocumentFragment 节点本身会自动消失).这个特性使其常被拿来当作 DOM 操作的 buffer,即当有大量 DOM 节…
//create method getElementsByClassName for document if(!document.getElementsByClassName){ document.getElementsByClassName = function(className, element){ var children = (element || document).getElementsByTagName('*'); var elements = new Array(); for…
在代码前面加如下代码: if (!document.getElementsByClassName) { document.getElementsByClassName = function (className, element) { var children = (element || document).getElementsByTagName('*'); var elements = new Array(); for (var i = 0; i < children.length; i++…
var querySelector = function(selector) { //TODO 先简单兼容,后续继续扩展: var element = null; if(document.querySelector) { element = document.querySelector(selector); } else { var selectors = selector.split(' '); var context = document; for(var i = 0, len = sele…
讲这个方法之前,我们应该先了解下插入节点时浏览器会做什么. 在浏览器中,我们一旦把节点添加到document.body(或者其他节点)中,页面就会更新并反映出这个变化,对于少量的更新,一条条循环插入也会运行很好,也是我们常用的方法.代码如下: for(var i=0;i<5;i++) { var op = document.createElement("span"); var oText = document.createTextNode(i); op.appen…
document节点是文档的根节点,每张网页都有自己的document节点.属性:1:document.doctype----它是一个对象,包含了当前文档类型 (Document Type Declaration,简写DTD)信息.2:document.documentElement----返回当前文档的根节点,对于HTML网页,该属性返回<html>节点.3:document.defaultView---在浏览器中返回window对象4:document.head-----返回当前文档的&l…
讲这个方法之前,我们应该先了解下插入节点时浏览器会做什么. 在浏览器中,我们一旦把节点添加到document.body(或者其他节点)中,页面就会更新并反映出这个变化,对于少量的更新,一条条循环插入也会运行很好,也是我们常用的方法.代码如下: for(var i=0;i<5;i++) { var op = document.createElement("span"); var oText = document.createTextNode(i)…