五、利用节点的层次关系(level)获取节点的方法
父节点:parentNode属性
子节点:childNodes集合, firstChild() , lastChild()
上一个兄弟节点:previousSibling属性
下一个兄弟节点:nextSibling属性
1、获取父节点
tabNode = document.getElementById("tableid1");
node = tabNode.parentNode;
2、获取子节点
var nodes = tabNode.childNodes;
注意:1)如果<table>后面有回车符,高版本的IE和火狐会识别成 “空白文本”#text,而低版本IE会直接越过-----不光是<table>节点,其它节点也一样
2)表格的,<table>标签和<tr>标签中间,其实还隐藏着一个<tbody>标签----表格体
3、获取兄弟节点
node = tabNode.previousSibling.previousSibling ‘上一个兄弟
msgbox node.nodeName ‘div
node = tabNode.nextSibling.nextSibling;’上一个兄弟
msgbox node.nodeName ‘dl
六、DOM中的一些操作
1、创建文本对象
function createAndAdd1(){
‘1利用createTextNode()创建一个文本对象
oTextNode = document.createTextNode("新的文本,很好!");
‘2获取div对象
divNode = document.getElementById("div1");
‘3把oTextNode添加成div对象的孩子
divNode.appendChild(oTextNode);
end
2、创建标签对象
function createAndAdd2()
‘1利用createElement()创建一个标签对象
oBtnNode = document.createElement("input")
oBtnNode.type="button"
oBtnNode.value="新建的按钮"
‘2获取div对象
divNode = document.getElementById("div1")
‘3把oTextNode添加成div对象的孩子
divNode.appendChild(oBtnNode)
end
3、直接利用容器标签中的一个属性:innerHTML-----本质上改该标签容器中的“html代码”,不是我们认为的对象树的操作
function createAndAdd3()
divNode = document.getElementById("div1");
‘divNode.innerHTML="<input type='button' value='一个新按钮'/> "
divNode.innerHTML="<a href='http:’www.sina.com'>一个超链接</a> "
end
4、删除节点 利用标签容器对象中的removeChild()和removeNode(),前者删子节点,后者删自己----不建议使用
function deleteNode()
oDivNode = document.getElementById("div2")
‘自杀式----不建议
‘oDivNode.removeNode();’默认false,不删除子节点集合
‘oDivNode.removeNode(true);’true,删除子节点集合
‘通过父节点去删除它的孩子
oDivNode.parentNode.removeChild(oDivNode)
end
5、替换节点(移除替换) 利用标签容器对象中的replaceChild()和replaceNode(),前者替换子节点,后者替换自己----不建议使用
function updateNode()
oDivNode = document.getElementById("div2")
oDivNode4 = document.getElementById("div4")
‘自杀式----不建议
‘oDivNode.replaceNode(oDivNode4)
‘通过父节点去替换它的孩子:用oDivNode4去替换oDivNode
oDivNode.parentNode.replaceChild(oDivNode4,oDivNode)
end
6、替换节点(克隆替换)
function updateNode2()
oDivNode = document.getElementById("div2")
oDivNode4 = document.getElementById("div4")
oDivNode4_2 = oDivNode4.cloneNode(true);’克隆一个对象,默认参数为false。参数为true时,连子节点一起克隆
‘通过父节点去替换它的孩子:用oDivNode4_2去替换oDivNode
oDivNode.parentNode.replaceChild(oDivNode4_2,oDivNode)
end
转载于:https://blog.51cto.com/10988776/1722850