我想在不使用ID标签的情况下更改HTML元素的类,因为我有很多这些元素。我希望有这样简单的东西,但代码不起作用。
<li ><a onclick="ChangeClass()" href="/Default.aspx">Home</a></li>
<script>
function ChangeClass(){
this.className = "active";
}
</script>
编辑:抱歉,这是一种类型。我的代码确实有括号但仍然没有工作。
EDIT2:感谢您的快速回复,我会查看所有这些并做笔记。
答案 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>