您的位置:首页 > Web前端 > JavaScript

Javascript实现自动无限级关联下拉菜单

2007-09-07 13:43 337 查看
刚刚写完的,发上来大家共享一下




<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>
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: