Javascript更改类而不使用ID标记

时间:2016-12-21 16:11:56

标签: javascript html

我想在不使用ID标签的情况下更改HTML元素的类,因为我有很多这些元素。我希望有这样简单的东西,但代码不起作用。

<li ><a onclick="ChangeClass()" href="/Default.aspx">Home</a></li>

<script>
        function ChangeClass(){
            this.className = "active";
        } 
</script>
编辑:抱歉,这是一种类型。我的代码确实有括号但仍然没有工作。

EDIT2:感谢您的快速回复,我会查看所有这些并做笔记。

2 个答案:

答案 0 :(得分:5)

'this'这里指的是窗口对象。你可以使用call / apply来改变它的上下文。

检查此代码段

 function ChangeClass(event) {
   this.className = "active";
 }
.active {
  color: red;
}
<li><a href="/Default.aspx" class="default" onclick="ChangeClass.call(this)">Home</a>
</li>

<script>
</script>

希望这有帮助

答案 1 :(得分:2)

在JavaScript this中指的是包含操作的元素。 你在函数中使用它的方式就是这样,你没有得到点击DOM元素的范围,只有函数范围。 您在this处理程序中引用的onClick不是您认为的DOM元素。您需要将代码更改为:

<li ><a onclick="ChangeClass(this)" href="/Default.aspx">Home</a></li>

<script>
        function ChangeClass(element){
            element.className = "active";
        } 
</script>