Javascript 在菜单中更改类
我从这里的社区得到了很大的帮助,我再次伸出了援助之手。 这是我的问题。我有菜单Javascript 在菜单中更改类,javascript,jquery,html,css,Javascript,Jquery,Html,Css,我从这里的社区得到了很大的帮助,我再次伸出了援助之手。 这是我的问题。我有菜单 主页 公司 分包 联系 它调用一个js函数onclick。这工作正常,我现在要做的是将class=“current”更新到单击的项目。这里是我的另一个js函数,它不起作用 <script language="javascript" type="text/javascript"> $(".nav a#home").addClass("current"); $("a").click
主页
- 公司
分包
- 联系
它调用一个js函数onclick。这工作正常,我现在要做的是将class=“current”更新到单击的项目。这里是我的另一个js函数,它不起作用
<script language="javascript" type="text/javascript">
$(".nav a#home").addClass("current");
$("a").click(function(){
$("a").removeClass("current");
$(this).addClass("current");
});
</script>
$(“.nav a#home”).addClass(“当前”);
$(“a”)。单击(函数(){
$(“a”).removeClass(“当前”);
$(此).addClass(“当前”);
});
任何帮助都会很棒。提前谢谢。对我来说似乎很好 我正在使用您的代码:
$("a").click(function(){
$("a").removeClass("current");
$(this).addClass("current");
});
请参见创建dom后是否运行脚本?
如果没有,您可以将脚本移动到低于html的位置,或者像这样使用load事件:
$(document).ready(function() {
$(".nav a#home").addClass("current");
$("a").click(function(){
$("a").removeClass("current");
$(this).addClass("current");
});
});
您正在删除脚本可以找到的第一个“a”的类。您应该使用以下选项:
$("a").each(function() {
$(this).removeClass("current");
}
而不是$(“a”)。removeClass(“当前”)代码>
您还必须将所有内容包装在一个文档中:
$(document).ready(function() {
//code
});
同时发布css代码。你必须使用$(“a”)。each()
或$(“a.current”)
而不仅仅是$(“a”)
。这对我来说很有效,看起来你没有包含任何jQuery库。@KingKing有时是我们错过的简单的s#$t,对吧。我加载了jQuery库,但它位于正文的底部。我将CnhClass函数移到了它下面,也感谢emn178。这就是为什么我喜欢这里,乐于助人的人的快速反应。再次感谢所有人。@user3547741是的,即时回复是成功实现SO的最重要因素之一,而许多论坛/问答网站要求我们通过F5查看回复,这太糟糕了。和$(“A.current”)。removeClass(“current”)
与@emn178配合使用会更好,但如果$(“nav a.current”).removeClass(“current”)
集合。removeClass
将删除集合中所有项上的类,请参见此,这样OP的代码就不会出错。我们不需要在这里使用每个。有趣!这是新事物吗?我知道有些情况下这对我不起作用。@Hauke我不认为这是新的,在jQuery
中有一条规则需要记住,当你使用一个方法修改/添加某个内容时,它将应用于集合中的所有项目,但当你使用一个方法仅获取集合中的某个内容时,它将只返回第一个项目的值(如attr
)。请注意,我今天刚刚学习了jQuery。(来自.NET world:)很高兴知道,也许我只是混合了这一点。如King King所述,请确保包括库(可能是因为您提到了另一个运行良好的函数)也可以尝试用文档包装代码。准备好了,就像其他答案所建议的那样。
$(document).ready(function() {
//code
});