<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML>
<HEAD>
<TITLE> New Document </TITLE>
<style>
.w{background-color:#fff}
.r{background-color:red}
</style>
<META NAME="Generator" CONTENT="EditPlus">
<META NAME="Author" CONTENT="">
<META NAME="Keywords" CONTENT="">
<META NAME="Description" CONTENT="">
<script>
function changeAll(){
var root = document.getElementById('menunav');
recursion(root,'w'); } function recursion(node,cN){
var childs = node.childNodes;
for(var i=0;i<childs.length;i++){
if(childs[i].nodeType == 1){
childs[i].className=cN;
recursion(childs[i],cN);
}
}
} function change(obj){
changeAll();
//alert(obj.innerHTML)
obj.className='r';
recursion(obj,'r');
event.cancelBubble = true;//注意这个, 阻止事件向上冒泡传递。 }
</script>
</HEAD> <BODY>
<ul id="menunav">
<li onclick='change(this)'>AAA
<ul id="menunav1" onclick='change(this)'>
<li>sss </li>
<li> bbbb</li>
</ul>
</li>
<li onclick='change(this)'> BBB
<ul id="menunav2" onclick='change(this)'>
<li>ccc </li>
<li> dddd</li>
</ul>
</li>
</ul>
</BODY>
</HTML>
<HTML>
<HEAD>
<TITLE> New Document </TITLE>
<style>
.w{background-color:#fff}
.r{background-color:red}
</style>
<META NAME="Generator" CONTENT="EditPlus">
<META NAME="Author" CONTENT="">
<META NAME="Keywords" CONTENT="">
<META NAME="Description" CONTENT="">
<script>
function changeAll(){
var root = document.getElementById('menunav');
recursion(root,'w'); } function recursion(node,cN){
var childs = node.childNodes;
for(var i=0;i<childs.length;i++){
if(childs[i].nodeType == 1){
childs[i].className=cN;
recursion(childs[i],cN);
}
}
} function change(obj){
changeAll();
//alert(obj.innerHTML)
obj.className='r';
recursion(obj,'r');
event.cancelBubble = true;//注意这个, 阻止事件向上冒泡传递。 }
</script>
</HEAD> <BODY>
<ul id="menunav">
<li onclick='change(this)'>AAA
<ul id="menunav1" onclick='change(this)'>
<li>sss </li>
<li> bbbb</li>
</ul>
</li>
<li onclick='change(this)'> BBB
<ul id="menunav2" onclick='change(this)'>
<li>ccc </li>
<li> dddd</li>
</ul>
</li>
</ul>
</BODY>
</HTML>
能不能具体到每个li,我点一个li,就单独这个li变色
<HTML>
<HEAD>
<TITLE> New Document </TITLE>
<style>
.w{background-color:#fff}
.r{background-color:red}
#menunav{background-color:blue}
.aa{background-color:yellow}
</style>
<META NAME="Generator" CONTENT="EditPlus">
<META NAME="Author" CONTENT="">
<META NAME="Keywords" CONTENT="">
<META NAME="Description" CONTENT="">
<script>
function changeAll(){
var root = document.getElementById('menunav');
recursion(root,'w'); } function recursion(node,cN){
var childs = node.childNodes;
for(var i=0;i<childs.length;i++){
if(childs[i].nodeType == 1){
childs[i].className=cN;
recursion(childs[i],cN);
}
}
} function change(obj){
changeAll();
//alert(obj.innerHTML)
obj.className='r';
recursion(obj,'r');
event.cancelBubble = true;//注意这个, 阻止事件向上冒泡传递。 }
</script>
</HEAD> <BODY>
<ul id="menunav">
<li onclick='change(this)'>AAA
<ul id="menunav1" onclick='change(this)' class ="aa">
<li onclick='change(this)'>sss </li>
<li onclick='change(this)'> bbbb</li>
</ul>
</li>
<li onclick='change(this)'> BBB
<ul id="menunav2" onclick='change(this)' class="aa">
<li onclick='change(this)'>ccc </li>
<li onclick='change(this)'> dddd</li>
</ul>
</li>
</ul>
</BODY>
</HTML>
比如上述代码我现在默认对父菜单和子菜单加了蓝色和黄色背景色,那我现在如何在点击一个菜单后恢复之前设置的颜色
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML>
<HEAD>
<TITLE> New Document </TITLE>
<style>
.w{background-color:#fff}
.r{background-color:red}
.b{background-color:blue}
</style>
<META NAME="Generator" CONTENT="EditPlus">
<META NAME="Author" CONTENT="">
<META NAME="Keywords" CONTENT="">
<META NAME="Description" CONTENT="">
<script>
function changeAll(){
var root = document.getElementById('menunav');
recursion(root,'w'); } function recursion(node,cN){
var childs = node.childNodes;
for(var i=0;i<childs.length;i++){
if(childs[i].nodeType == 1){
childs[i].className=cN;
recursion(childs[i],cN);
}
}
} function change(obj,c){
changeAll();
//alert(obj.innerHTML)
obj.className=c;
recursion(obj,c);
event.cancelBubble = true;//注意这个, 阻止事件向上冒泡传递。 }
</script>
</HEAD> <BODY>
<ul id="menunav">
<li onclick='change(this,"b")'>AAA
<ul id="menunav1">
<li onclick='change(this,"r")'>sss </li>
<li onclick='change(this,"r")'> bbbb</li>
</ul>
</li>
<li onclick='change(this,"b")'> BBB
<ul id="menunav2">
<li onclick='change(this,"r")'>ccc </li>
<li onclick='change(this,"r")'> dddd</li>
</ul>
</li>
</ul>
</BODY>
</HTML>
<HTML>
<HEAD>
<TITLE> New Document </TITLE>
<style>
.w{background-color:#fff}
.r{background-color:red}
.b{background-color:blue}
</style>
<META NAME="Generator" CONTENT="EditPlus">
<META NAME="Author" CONTENT="">
<META NAME="Keywords" CONTENT="">
<META NAME="Description" CONTENT="">
<script>
function changeAll(){
var root = document.getElementById('menunav');
recursion(root,'w'); } function recursion(node,cN){
var childs = node.childNodes;
for(var i=0;i<childs.length;i++){
if(childs[i].nodeType == 1){
childs[i].className=cN;
recursion(childs[i],cN);
}
}
} function change(obj,c){
changeAll();
//alert(obj.innerHTML)
obj.className=c;
recursion(obj,c);
event.cancelBubble = true;//注意这个, 阻止事件向上冒泡传递。 } function changeP(obj,c){
var childs = obj.childNodes;
for(var i=0;i<childs.length;i++){
if(childs[i].nodeType == 1){
//alert(childs[i].style.display)
if(childs[i].style.display ==''){
childs[i].style.display = 'none';
obj.className = c;
}else{
childs[i].style.display = '';
obj.className = 'w';
}
}
}
}
</script>
</HEAD> <BODY>
<ul id="menunav">
<li onclick='changeP(this,"b")'>AAA
<ul id="menunav1">
<li onclick='change(this,"r")'>sss </li>
<li onclick='change(this,"r")'> bbbb</li>
</ul>
</li>
<li onclick='changeP(this,"b")'> BBB
<ul id="menunav2">
<li onclick='change(this,"r")'>ccc </li>
<li onclick='change(this,"r")'> dddd</li>
</ul>
</li>
</ul>
</BODY>
</HTML>