1.getElementsByClassName兼容IE9以下浏览器

function getElementsByClassName(node,classname){
	if(node.getElementsByClassName){
		// 使用现有方法
		return node.getElementsByClassName(classname);
	}
	else{
		var results = new Array();
		var elems = node.getElementsByTagName("*");
		for(var i=0; i<elems.length; i++){
			if(elems[i].className.indexOf(classname) != -1){
				results[results.length] = elems[i];
			}
		}
		return results;
	}
}

2.假如我们希望网页加载完毕后执行多个函数,可能会这样写

window.onload = function(){  
    firstFunction();  
    secondFunction();  
}

但是这种方法存在一些局限,例如:如果一个页面中存在多个javascript文件,在这多个javascript文件中可能每一个javascript文件都会用到window.onload方法,在这种情况下使用这种方法是无法解决的,我们知道假如将多个函数逐一绑定到onload事件上,比如:

window.onload = firstFunction;
window.onload = secondFunction;

它们当中只有最后那个才会被实际执行。所以更好的方法是:

function addLoadEvent(func){
	var oldonload = window.onload;
	if(typeof window.onload != "function"){
		window.onload = func;
	}
	else{
		window.onload = function(){
			oldonload();
			func();
		}
	}
}

这将把那些在页面加载完毕时执行的函数创建为一个队列,今后在增加需要在页面加载完毕时执行的函数,只需要多写一条语句:

addLoadEvent(myFunction);

3.insertBefore方法,将newElement插入到targetElement之前:

parentElement.insertBefore(newElement,targetElement);

DOM没有提供insertAfter方法,于是我们根据已有的方法自己编写一个:

function insertAfter(newElement,targetElement){
	var parent = targetElement.parentNode;
	if(parent.lastChild == targetElement){
		parent.appendChild(newElement);
	}
	else{
		parent.insertBefore(newElement,targetElement.nextSibling);
	}
}

4.Ajax技术的核心就是XMLHttpRequest对象。js通过这个对象发送请求、处理响应

// 兼容写法
function getHTTPObject(){
	if(typeof XMLHttpRequest == "undefined"){
		XMLHttpRequest = function(){
			try {
				return new ActiveXObject("Msxml2.XMLHTTP.6.0");
			} catch (e) {}
			try {
				return new ActiveXObject("Msxml2.XMLHTTP.3.0");
			} catch (e) {}
			try {
				return new ActiveXObject("Msxml2.XMLHTTP");
			} catch (e) {}
			return false;
		}
	}
	return new XMLHttpRequest();
}

var request = getHTTPObject();


function getNewContent(){
	var request = getHTTPObject();
	if(request){
		// 请求目标
		request.open("GET","example.txt",true);
		// 如何处理响应
		request.onreadystatechange = function(){
			if(request.readyState == 4){
				var para = document.createElement("p");
				var txt = document.createTextNode(request.responseText);
				para.appendChild(txt);
				document.getElementById("new").appendChild(para);
			}
		};
		// 发送请求
		request.send(null);
	}
	else{
		alert("Sorry,your browser doesn't support XMLHttpRequest");
	}
}
addLoadEvent(getNewContent);

5.addClass方法

function addClass(element,value){
	if(!element.className){
		element.className = value;
	}
	else{
		var newClassName = element.className;
		newClassName += " ";
		newClassName += value;
		element.className = newClassName;
	}
}

啊,用习惯了jQuery以后总觉得原生js好麻烦啊::>_<::