<dl id="dl1">
<dt>aa</dt>
<dd>
<ul>
<li>aaa</ li>
<li>bbb</ li>
</ul>
<dd>
<dt>bb</dt>
<dd>
<ul>
<li>111</ li>
</ul>
<dd>
</dl>动态生成的<dl>和<ul>,类型于淘宝购物界面选择商品属性的效果。
就是遍历<dl>中有多少个节点应该怎么遍历?
然后再循环中还要遍历ul,这个ul的id在动态生成的时候应该如何赋值?
<dt>aa</dt>
<dd>
<ul>
<li>aaa</ li>
<li>bbb</ li>
</ul>
<dd>
<dt>bb</dt>
<dd>
<ul>
<li>111</ li>
</ul>
<dd>
</dl>动态生成的<dl>和<ul>,类型于淘宝购物界面选择商品属性的效果。
就是遍历<dl>中有多少个节点应该怎么遍历?
然后再循环中还要遍历ul,这个ul的id在动态生成的时候应该如何赋值?
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>无标题文档</title>
</head><body>
<dl id="dl1">
<dt>aa</dt>
<dd>
<ul>
<li>aaa</li>
<li>bbb</li>
</ul>
<dd>
<dt>bb</dt>
<dd>
<ul>
<li>111</li>
</ul>
<dd>
</dl><script type="text/javascript">
var dl1 = document.getElementById('dl1');
var counter = 0;function showNode(pNode) {
for(var i = 0; i < pNode.childNodes.length; i ++) {
if (pNode.childNodes[i].nodeType == 1) {
alert('找到子元素节点:' + pNode.childNodes[i].nodeName);
counter ++;
if (pNode.childNodes[i].childNodes.length > 0) showNode(pNode.childNodes[i]);
}
}
}showNode(dl1);
document.write('共有' + counter + '个元素节点');
</script>
</body>
</html>第二个问题看不懂你想问什么。
function mm(){
var a=document.getElementById("dl1");
var b=a.getElementsByTagName("*");
alert(b.length);
var c=a.getElementsByTagName("ul");
for(var i=0;i<c.length;i++){
c[i].id="ul"+i;
}
var d=document.getElementById("ul0");
alert(d.id);
}
window.onload=mm;
</script>
这样试试 不很明白你的意思
var dls=a.getElementsByTagName("dl");
精简而强大:
刚又查了一下用法:
getElementsByTagName("*"):
getElementsByTagName() 方法返回元素的顺序是它们在文档中的顺序。
如果把特殊字符串 "*" 传递给 getElementsByTagName() 方法,它将返回文档中所有元素的列表,元素排列的顺序就是它们在文档中的顺序。