从零开始 DOM操作 笔记
function getElementsByClassName(node,className){
if(node.getElementsByClassName){
return node.getElementsByClassName(className)
}else{
var results = [];
var items = node.getElementsByTagName("*");
for (var i = 0; i < items.length; i++) {
if(items[i].className == className){
results.push(items[i]);
}
};
return results;
}
}
--> getAttribute(); setAttribute("id","app")
function insertAfter(newEl,targetEl){
var parentEl = targetEl.parentNode;
if(parentEl.lastChild == targetEl){
parentEl.appendChild(newEl);
}else{
parentEl.insertBefore(newEl,targetEl.nextSibling);
}
}
--> nextSibling 与 自己创建的 getNextElement()函数:
nextSibling 挨着的节点 利用 nodeType验证 1 对应 元素节点
2 对应 属性节点
3 对应文本节点
下一个节点元素函数:
function getNextElement(node){
if(node.nodeType == 1){
return node;
}
if(node.nextSibling){
return getNextElement(node.nextSibling); // 递归
}
return null;
}
--> addClass方法:
function addClass(node,value){
if(!node.className){
node.className = value;
}else{
//直接用属性设置
//node.setAttribute("class",node.className+" "+value)
newClassName = node.className;
//classname 之间的空格 不能缺失
newClassName+=" ";
newClassName+=value;
node.className = newClassName;
}
}
-->子元素节点:
function childElement(el){
var result=[];
for (var i = 0; i < el.childNodes.length; i++) {
if(el.childNodes[i].nodeType == 1){
result.push(el.childNodes[i]);
}
};
return result;
}
a, 行末逗号
b, 空格缩进
c, 函数名称后无空格
d, 函数参数与括号间无空格
e, 对象字面量的冒号后加空格,冒号前不加
f, 条件语句关键字后加空格