点击li标签变色,求Js代码

zhaofeng0420 2013-12-27 06:11:48

鼠标经过和点击后的颜色是一样的。请教Js怎么写?
<!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>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<meta http-equiv="X-UA-Compatible" content="IE=7" />
<title>关于本站|联系我们</title>
<link href="Css/main.css" rel="stylesheet" type="text/css">
<link rel="shortcut icon" href="Images/b_i.ico" type="image/x-icon"/>
<link rel="bookmark" href="Images/b_i.ico" type="image/x-icon"/>
</head>
<body>
<div class="wrap">
<div class="main">
<div class="logo aLogo"><a class="logo_a" title="设为首页"></a></div>
<div class="bdn">当前位置:
<a href="./">首页</a> >> 关于本站
</div>
<div class="lmu">
<div class="idt">关于本站</div>
<div class="mu" id="mu">
<ul>
<li>关于本站</li>
<li>诚聘英才</li>
<li>联系我们</li>
<li>使用声明</li>
</ul>
</div>
</div>
</div>
<script type="text/javascript" src="JavaScript/footer.js"></script>
</div>
</body>
</html>
...全文
2071 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
张运领 2013-12-27
  • 打赏
  • 举报
回复
5楼给的这个是对的。。。。 之前刚说了优先级的问题,自己又没有注意再次写的代码,还是有优先级的问题。。。。 我只能说自己,真二。。。
scscms太阳光 2013-12-27
  • 打赏
  • 举报
回复
<!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>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <meta http-equiv="X-UA-Compatible" content="IE=7" />
    <title>关于本站|联系我们</title>
    <style type="text/css">
        .mu .liSelected{background-color:#FFA11F;color:#0978D1}
        .mu li{background-color:#0978D1;color:#FFF}
        .mu li:hover{color:red}
    </style>
</head>
<body>
<div class="wrap">
    <div class="main">
        <div class="logo aLogo"><a class="logo_a" title="设为首页"></a></div>
        <div class="bdn">当前位置:
            <a href="./">首页</a> >> 关于本站
        </div>
        <div class="lmu">
            <div class="idt">关于本站</div>
            <div class="mu" id="mu">
                <ul>
                    <li>关于本站</li>
                    <li>诚聘英才</li>
                    <li>联系我们</li>
                    <li>使用声明</li>
                </ul>
            </div>
        </div>
    </div>
    <script type="text/javascript">
        var mu = document.getElementById("mu");
        var li = mu.getElementsByTagName("li");
        mu.onclick = function(e){
            e = e || window.event;
            var target = e.srcElement || e.target;
            for(var i=0,len=li.length;i<len;i++){
                li[i].className = target == li[i] ? "liSelected":"";
            }
        };
    </script>
</div>
</body>
</html>
zhaofeng0420 2013-12-27
  • 打赏
  • 举报
回复
引用 3 楼 zyl_lyr1019 的回复:
<style>
		.liSelected{
			background-color:#FFA11F;
			color:#0978D1;
		}
		.liNoSelected{
			background-color:#0978D1;
			color:#FFF;
		}
		.mu li:hover{
			color:#0978D1;
		}
	</style>
	<script>
	document.getElementById("mu").onclick = function(e){
            e = e || window.event;
            var target = e.srcElement || e.target,
                tagName = target.tagName.toLowerCase(),
                allLi = document.getElementById("mu").getElementsByTagName("li");
              
            for(var i=0,len=allLi.length;i<len;i++){
                if(target == allLi[i]){
                    allLi[i].className = "liSelected";
                }else{
					allLi[i].className = "liNoSelected";
                }
            }
              
        };
	</script>
因为上面的那种写法,样式会直接被写在标签内,这样的样式有最高的优先级,所以你在css文件中,添加的hover对应的class,是会被标签内的样式覆盖,把你要的样式都写成class,添加class就没有问题了。 这样li你最好都只用一个class,用多个的话,就得做其他处理了。
现在比刚才好一点了,还有一点问题,就是点击前hover是OK的,点击后就失效了
张运领 2013-12-27
  • 打赏
  • 举报
回复
<style>
		.liSelected{
			background-color:#FFA11F;
			color:#0978D1;
		}
		.liNoSelected{
			background-color:#0978D1;
			color:#FFF;
		}
		.mu li:hover{
			color:#0978D1;
		}
	</style>
	<script>
	document.getElementById("mu").onclick = function(e){
            e = e || window.event;
            var target = e.srcElement || e.target,
                tagName = target.tagName.toLowerCase(),
                allLi = document.getElementById("mu").getElementsByTagName("li");
              
            for(var i=0,len=allLi.length;i<len;i++){
                if(target == allLi[i]){
                    allLi[i].className = "liSelected";
                }else{
					allLi[i].className = "liNoSelected";
                }
            }
              
        };
	</script>
因为上面的那种写法,样式会直接被写在标签内,这样的样式有最高的优先级,所以你在css文件中,添加的hover对应的class,是会被标签内的样式覆盖,把你要的样式都写成class,添加class就没有问题了。 这样li你最好都只用一个class,用多个的话,就得做其他处理了。
zhaofeng0420 2013-12-27
  • 打赏
  • 举报
回复
引用 1 楼 zyl_lyr1019 的回复:
document.getElementById("mu").onclick = function(e){
			e = e || window.event;
			var target = e.srcElement || e.target,
			    tagName = target.tagName.toLowerCase(),
				allLi = document.getElementById("mu").getElementsByTagName("li");
			
			for(var i=0,len=allLi.length;i<len;i++){
				if(target == allLi[i]){
					allLi[i].style.background = "red";
				}else{
					allLi[i].style.background = "blue";
				}
			}
			
		};
把这段,写在页面的最下面。。。
谢谢,您的这段代码很好用,但我改了一下之后,li:hover就失效了,不知道什么原因?
document.getElementById("mu").onclick = function(e){
            e = e || window.event;
            var target = e.srcElement || e.target,
                tagName = target.tagName.toLowerCase(),
                allLi = document.getElementById("mu").getElementsByTagName("li");
             
            for(var i=0,len=allLi.length;i<len;i++){
                if(target == allLi[i]){
                    allLi[i].style.background = "#FFA11F";
					allLi[i].style.color = "#0978D1";
                }else{
                    allLi[i].style.background = "#0978D1";
					allLi[i].style.color = "#FFF";
                }
            }
             
        };
张运领 2013-12-27
  • 打赏
  • 举报
回复
document.getElementById("mu").onclick = function(e){
			e = e || window.event;
			var target = e.srcElement || e.target,
			    tagName = target.tagName.toLowerCase(),
				allLi = document.getElementById("mu").getElementsByTagName("li");
			
			for(var i=0,len=allLi.length;i<len;i++){
				if(target == allLi[i]){
					allLi[i].style.background = "red";
				}else{
					allLi[i].style.background = "blue";
				}
			}
			
		};
把这段,写在页面的最下面。。。
内容概要:本文系统研究了构网型变流器的正负序阻抗解耦特性及其在弱电网环境下的稳定性表现,重点依托Matlab/Simulink仿真平台,构建了详细的阻抗数学模型,设计了解耦控制策略,并采用小信号扫频法进行频域辨识与稳定性验证。研究深入探讨了构网型变流器与传统跟网型逆变器在正负序阻抗特性上的本质差异,结合虚拟同步发电机(VSG)等先进控制技术,分析其在抑制宽频带振荡、削弱锁相环动态耦合等方面的优越性。文中不仅提供了完整的仿真模型与MATLAB代码实现,还整合了光伏、风电、储能、微电网等多类新能源系统的阻抗建模与稳定性分析资源,形成了一套面向新型电力系统稳定性的综合性技术资料体系,具有较强的科研复现与工程参考价值。; 适合人群:面向具备电力电子、电力系统自动化、新能源并网等专业背景的研究生、高校教师及工程技术人员,特别适用于从事阻抗建模、小干扰稳定性分析、宽频振荡机理研究以及撰写高水平学术论文的科研工作者。; 使用场景及目标:①掌握构网型变流器正负序阻抗建模与扫频辨识的仿真方法;②深入理解VSG等构网型控制在弱电网中提升稳定性的内在机理;③复现顶刊论文中的阻抗分析流程与稳定性判据应用;④利用提供的成熟模型与代码加速科研进程,支撑课题研究与学术成果产出。; 阅读建议:建议结合文中提供的Simulink模型与MATLAB代码,按照“理论建模—仿真搭建—扫频激励—频响提取—Nyquist判据分析”的完整流程进行实践操作,重点关注扫频信号的注入方式、频率范围设置及阻抗曲线的物理意义解读,并参考博士论文复现案例深化对复杂动态耦合问题的理解。

87,987

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧