<ul id="navigation">
<li>
<a href="#">栏目1</a>
<ul>
<li><a href="#">栏目1->菜单1</a></li>
<li><a href="#">栏目1->菜单2</a></li>
<li><a href="#">栏目1->菜单3</a></li>
<li><a href="#">栏目1->菜单4</a></li>
</ul>
</li>
</ul>
怎样获得navigation的一个li元素,而不是用getElementsByTagName()将li都获得了
<ul id="list">
<li><a href="#">three days grace</a>
<ul>
<li><a href="#">three days grace</a></li>
<li><a href="#">three days grace</a></li>
</ul>
</li>
<li><a href="#">three days grace</a>
<ul>
<li><a href="#">three days grace</a></li>
<li><a href="#">three days grace</a></li>
</ul>
</li>
<li><a href="#">three days grace</a></li>
</ul>
<script type="text/javascript">
var list = document.getElementById('list');
var tops = list.childNodes;
alert(tops.length);
</script>
我这里alert出来的是7 我只要第一级元素 应该是3
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>Test Page</title>
<meta name="generator" content="editplus" />
<meta name="author" content="" />
<meta name="keywords" content="" />
<meta name="description" content="" />
<style type="text/css"> </style>
</head>
<body><ul id="navigation">
<li>
<a href="#">栏目1</a>
<ul>
<li><a href="#">栏目1->菜单1</a></li>
<li><a href="#">栏目1->菜单2</a></li>
<li><a href="#">栏目1->菜单3</a></li>
<li><a href="#">栏目1->菜单4</a></li>
</ul>
</li>
</ul> </body>
<script type="text/javascript">
<!--function GetFirstElement(parentElement) {
var firstEle = parentElement.firstChild;
while (firstEle && firstEle.nodeType !== 1) {
firstEle = firstEle.nextSibling;
}
return firstEle;
}
document.write(GetFirstElement(document.getElementById("navigation")).innerHTML); //-->
</script>
</html>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>Test Page</title>
<meta name="generator" content="editplus" />
<meta name="author" content="" />
<meta name="keywords" content="" />
<meta name="description" content="" />
<style type="text/css"> </style>
</head>
<body><ul id="list">
<li><a href="#">three days grace</a>
<ul>
<li><a href="#">three days grace</a></li>
<li><a href="#">three days grace</a></li>
</ul>
</li>
<li><a href="#">three days grace</a>
<ul>
<li><a href="#">three days grace</a></li>
<li><a href="#">three days grace</a></li>
</ul>
</li>
<li><a href="#">three days grace</a></li>
</ul>
</body>
<script type="text/javascript">
<!--
/*
function GetFirstElement(parentElement) {
var firstEle = parentElement.firstChild;
while (firstEle && firstEle.nodeType !== 1) {
firstEle = firstEle.nextSibling;
}
return firstEle;
}
*/
function GetChildElements(parentElement) {
var elements = new Array();
var nodes = parentElement.childNodes;
for (var i=nodes.length-1; i>=0; i--) {
if (nodes[i].nodeType === 1) {
elements.push(nodes[i]);
}
}
return elements;
}
var parentNode = document.getElementById('list');
document.write(GetChildElements(parentNode).length); //-->
</script>
</html>
function GetFirstElements(parentElement) {
var firstEle = parentElement.firstChild;
while (firstEle && firstEle.nodeType !== 1) {
firstEle = firstEle.nextSibling;
}
return firstEle;
} var list = document.getElementById('list');
var tops = GetFirstElements(list);
alert(tops.length);
</script>
输出undefind
window.onload = function() {
alert(document.getElementById("navigation").children.length);
}
经过本人在本地的测试,FF和IE弹出的都是一样的如果是childNodes在FF下会把子节点之间的空白字符当做一个子节点
而 children(children(vIndex [, iSubIndex])) 方法
用于获取集合中指定索引位置上的元素或是指定 Id 或 Name 的元素!
children(vIndex [, iSubIndex])
ps:你两个都装了?