![](https://csdnimg.cn/release/download_crawler_static/34877480/bg8.jpg)
var oUl = document.getElementById("myList"); // 获取
<ul>标记
var DOMString = "";
if(oUl.hasChildNodes()){
// 判断是否有子节点
var oCh = oUl.childNodes;
for(var i=0;i<oCh.length;i++)
// 逐一查找
DOMString += oCh[i].nodeName + "\n";
}
alert(DOMString);
}
4 访问父节点
nodeName 如果为文本节点,则返回 #text
tagName 如果为文本节点,则返回 undefined
function myDOMInspector(){
var myItem = document.getElementById("myDearFood");
alert(myItem. parentNode.tagName);
}
function myDOMInspector(){
var myItem = document.getElementById("myDearFood");
var parentElm = myItem.parentNode;
while(parentElm.className != "colorful" &&
parentElm != document.body)
parentElm = parentElm.parentNode; // 一路往
上找
alert(parentElm.tagName);
}
<body onload="myDOMInspector()">
<div class="colorful">
<ul>
<li>糖醋排骨 </li>
<li>圆笼粉蒸肉 </li>
<li>泡菜鱼 </li>
<li id="myDearFood">板栗烧鸡 </li>
<li>麻婆豆腐 </li>
</ul>
</div>
</body>
访问兄弟节点
function myDOMInspector(){
var myItem = document.getElementById("myDearFood");
// 访问兄弟节点
var nextListItem = myItem.nextSibling;
var preListItem = myItem.previousSibling;
alert(nextListItem.tagName +" "+ preListItem.tagName);
}
在 Firefox中不支持,但是 IE中却是支持的。
3.6 第一个 最后一个 子节点
function nextSib(node){
var tempLast = node.parentNode.lastChild;
// 判断是否是最后一个节点,如果是则返回 null
if(node == tempLast)
return null;
var tempObj = node.nextSibling;
// 逐一搜索后面的兄弟节点,直到发现元素节点为止
while(tempObj.nodeType!=1 &&
tempObj.nextSibling!=null)
tempObj = tempObj.nextSibling;
// 三目运算符, 如果是元素节点 则返回节点本身, 否则
返回 null
return (tempObj.nodeType==1)?tempObj:null;
}
function prevSib(node){
var tempFirst = node.parentNode. firstChild;
// 判断是否是第一个节点,如果是则返回 null
if(node == tempFirst)
return null;
var tempObj = node.previousSibling;
// 逐一搜索前面的兄弟节点,直到发现元素节点为止
while(tempObj.nodeType!=1 &&
tempObj.previousSibling!=null)
tempObj = tempObj.previousSibling;
return (tempObj.nodeType==1)?tempObj:null;
}
function myDOMInspector(){
var myItem = document.getElementById("myDearFood");
// 获取后一个元素兄弟节点
var nextListItem = nextSib(myItem);
// 获取前一个元素兄弟节点
var preListItem = prevSib(myItem);
alert(" 后一项 :" +
((nextListItem!=null)?nextListItem.firstChild.nodeValue:null) + "