js基础:Javascript实现自动无限级关联下拉菜单
				
									
					
					
						|  | 
							admin 2010年8月18日 9:58
								本文热度 5529 | 
					
				 
				
<html>
<head>
<title>级联下拉菜单</title>
<meta http-equiv = "Content-Type" counter = "text/html;charset = gb2312">
<script>...
var nMaxLength = 0;
function init(obj)
...{
    
    var hasChild = false;
    var nodes = document.getElementsByTagName('p');
    var selectobj;
    var pid = (obj==undefined) ? 0 : parseInt(obj.value);    
    var selectobj = document.createElement('select');
    selectobj.setAttribute('name','select_' + nMaxLength);
    selectobj.onchange = function()
    ...{
        var sels = document.getElementsByTagName('select');
        for(var j=sels.length-1;j>0;j--)
        ...{                 if(sels[j]==this)
            ...{
                break;
            }
            nMaxLength--;
            document.getElementById('div1').removeChild(sels[j]);
        }    
        init(this);
    }
    for(var i=0;i<nodes.length;i++)
    ...{
        var thispid = parseInt(nodes[i].getAttribute('pid'));
        var id = parseInt(nodes[i].getAttribute('id'));
        var n = nodes[i].getAttribute('n');
        if(thispid == pid)
        ...{
            var opt = document.createElement('option');
            opt.setAttribute('value',id);
            opt.innerText = n;
            selectobj.appendChild(opt);
            hasChild = true;
        }
;   }            
    if(hasChild)
    ...{
        nMaxLength++;
        document.getElementById('div1').appendChild(selectobj);
        init(selectobj);
    }    
}
function getMaxLength()
...{
    document.forms[0].maxLength.value = nMaxLength;
    return true;
}
</script>
</head>
<body onload = "init();">
<form action ="" method="post" onsubmit="return getMaxLength();">
<div id="div1">
<p n='product' id='0' pid='-1' /><p n='art' id='1' pid='0' /><p n='english' id='2' pid='0' /><p n='game' id='3' pid='0' />
<p n='math' id='4' pid='0' /><p n='natural' id='5' pid='0' /><p n='operate' id='6' pid='0' />
<p n='poem' id='7' pid='0' /><p n='science' id='8' pid='0' /><p n='high' id='11' pid='1' />
<p n='low' id='12' pid='1' /><p n='middle' id='13' pid='1' /><p n='abc' id='21' pid='2' />
<p n='number' id='22' pid='2' /><p n='song' id='23' pid='2' /><p n='story' id='24' pid='2' />
<p n='talk' id='25' pid='2' /><p n='listen' id='251' pid='25' />
<p n='read' id='252' pid='25' /><p n='word' id='253' pid='25' />
<p n='write' id='254' pid='25' /><p n='test' id='44' pid='1' /><p n='high' id='41' pid='4' />
</div>
<input type="hidden" name="maxLength" value="">
</form>
</body>
</html>
该文章在 2010/8/18 9:58:08 编辑过