Javascript 写一个检查$(this)#id的开关

Javascript 写一个检查$(this)#id的开关,javascript,jquery,html,css,switch-statement,Javascript,Jquery,Html,Css,Switch Statement,因此,我有一个菜单栏,它基本上是一个div中的一组块。我想编写一个jquery脚本,当您将鼠标悬停在一个特定的块上时,它可以更改菜单中周围2个块的类。 我想我应该执行一个switch语句来检查$(这个)id,然后更改周围的类。 我还想在不再悬停时将类更改回原来的类(就像我悬停的原始类一样) 为这件事添加了小提琴使其有意义 $(文档).ready(函数(){ $(“.kontakt”)。悬停( 函数(){ 美元(“.kontakt”)。宽度(“30%”; $(“.kontakt”).css(“左

因此,我有一个菜单栏,它基本上是一个div中的一组块。我想编写一个jquery脚本,当您将鼠标悬停在一个特定的块上时,它可以更改菜单中周围2个块的类。 我想我应该执行一个switch语句来检查$(这个)id,然后更改周围的类。 我还想在不再悬停时将类更改回原来的类(就像我悬停的原始类一样)

为这件事添加了小提琴使其有意义

$(文档).ready(函数(){
$(“.kontakt”)。悬停(
函数(){
美元(“.kontakt”)。宽度(“30%”;
$(“.kontakt”).css(“左边距”、“35%”);
$(“.kontakt”)。追加(
”); $(“.kontakt”)。追加(
康塔克
试试

case $(this.attr('id') === "iz"):
…到

case ($(this).attr('id') === "iz"):

…缺少括号。

switch语句的键应该是元素的属性,每个大小写都应该是一个潜在值。除了语法错误之外,您当前的代码有效地使用了
if
语句。请尝试以下操作:

switch (this.id) {
    case "iz":
        $("#1, #2").addClass("activatedmenubutton");
        break;
}

但是需要注意的是,带有单个外壳的
开关是多余的,您也可以使用
if
语句。

试试这个。您甚至不需要开关

$(".menubutton").hover( function() {
    $(".topmenu a").removeClass("activatedmenubutton");
    $(this).addClass("activatedmenubutton");
    $(this).prev().addClass("activatedmenubutton");
    $(this).next().addClass("activatedmenubutton");

});

这就解决了问题,
code$(“#1”).addClass(“activatedmenubutton”)
部分不起作用,但至少我把它放到了console.log字符串中,这样我就知道这个案例写得很好。这完全符合我的需要。出于某些原因,它不适用于添加/删除类,但适用于单个属性,使用
code$().menubutton“).hover(function(){$(this).css(background color)”,“#cccccc”)$(this.prev().css(background color)”,“#cccccc”);$(this.next().css(background color)”,“#cccccc”);$(this.prev().css(background color)”,“#ffffff”)$(this.prev().css(background color)”,“,“#ffff”);$(this.next().css()背景色“,“#ffffff”)})
在jquery中编写每个属性似乎很奇怪,虽然我有5个案例,但没有全部编写,因为第一个案例不起作用:)。不过,谢谢,至少我学会了正确的开关语法