《Javascript Dom 编程艺术》第一版里的通用代码

在js中加载函数如果下面这样写

window.onload = test1;

window.onload = test2;

那只能加载test2函数,test1不执行,当然也可以下面这样写

window.onload = function(){

test1();

test2();

}

如果加载的函数少的话没关系,如果特别多的很麻烦,可以用下面的共同加载函数

function addLoadEvent(func) {
  var oldonload = window.onload;
  if (typeof window.onload != 'function') {
    window.onload = func;
  } else {
    window.onload = function() {
      oldonload();
      func();
    }
  }
}
fucntion
highlightPage(){}
fucntion highlightPage1(){}
addLoadEvent(highlightPage);
addLoadEvent(highlightPage1);
 

js中插入节点有appendChild和insertBefore函数,但没有insertAfter函数,下面就是一个共同的insertAfter函数

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

js中添加class是替换而不是新增,例如一个元素节点的class是old,写了this.className = "new"; ,它的class变成了new,而不是“old new”。下面的函数就是新增class的功能

function addClass(element,value) {
  if (!element.className) {
    element.className = value;
  } else {
    newClassName = element.className;
    newClassName+= " ";
    newClassName+= value;
    element.className = newClassName;
  }
}
原文地址:https://www.cnblogs.com/xiang1336/p/3484886.html