使用javascript onclick设置CSS颜色

时间:2012-09-04 09:21:28

标签: javascript html css

您好我正在尝试让我的菜单链接变为红色,当我在该页面上并且它无效时。

HTML:

<li><a id="home" onclick="changeClass('home')" href="index.php">Home</a></li>

CSS:

#topMenu li{
    display:inline;
    margin-right:60px;
    font-size:12px;
    font-weight:bold;
    color:#000;
    text-decoration:none;
    }

#topMenu li a{
    color:#000;
    text-decoration:none;
    }

#topMenu li a:hover{
    color:#666;
    text-decoration:underline;
    }

.topMenuon{
    color:#F00
    }

使用Javascript:

 function changeClass(id)
    {
       var element = document.getElementById(id);
       element.className = element.className + ”topMenuon”;

    } 

关于如何让它发挥作用的任何想法?

6 个答案:

答案 0 :(得分:1)

包含Jquery更简单,并执行此操作:

$('#home').on('click',function(){

   $(this).addClass('topmenuon');

});

但是,如果您要访问其他页面,它将无法正常工作。您必须在javascript / jquery中以某种方式检测您所在的页面(使用网址中的内容,或使用页面上的标识符,例如部分标题),然后在您访问该页面时添加您的课程(或者,执行服务器)如果服务器直接渲染,那么根本不要调用它。如果你要离开页面,就不能使用onclick,新页面无法知道你是在做完全回发而不是ajax!

答案 1 :(得分:1)

您可能想要执行该服务器端,但如果由于某种原因您不能这样做 而你不能使用jQuery

function changeClass (id) {
  var el = document.getElementById(id);
  if (el.href == location.pathname) el.className += 'topMenuon';
};

答案 2 :(得分:0)

使用jquery - 这在<head> ...

 <script src="yourPath/jquery_1.8.0_min.js" type="text/javascript"></script>

...然后

 $(document).ready(function(){

   $("#home").addClass('topMenuon');

 }

那就行了......

取值

答案 3 :(得分:0)

Plain js

window.onload = function(){
   document.getElementById("home").onclick = function(){
      this.className +=" topMenuon" ;
   }
}

修改

您可能会点击链接进入新页面。因此,上面的代码不会改变链接的类,因为您现在处于新页面。

您可能需要使用php将该类添加到链接中(我假设您正在使用它)。

答案 4 :(得分:0)

申请

var element = document.getElementById('home');  
        element.setAttribute("className", newClass);

答案 5 :(得分:0)

function changeClass()
        {
            var element = document.getElementById('home');
            element.className += 'topMenuon';
        } 


<li><a id="home" onclick="changeClass();" href="#">Home</a></li>