使用jquery切换类
我需要根据链接中是否有特定类的条件,交换放置在链接中的跨度中的类。尝试过这个,但似乎不起作用。我错过了什么使用jquery切换类,jquery,Jquery,我需要根据链接中是否有特定类的条件,交换放置在链接中的跨度中的类。尝试过这个,但似乎不起作用。我错过了什么 if ($("#myLink").hasClass("dis")) { $("#myLink").find("span").toggleClass("uico", "uicoGR"); } else { $("#myLink").find("span").toggleClass("uicoGR", "uico"); } <a href="#" id="myLink"
if ($("#myLink").hasClass("dis")) {
$("#myLink").find("span").toggleClass("uico", "uicoGR");
} else {
$("#myLink").find("span").toggleClass("uicoGR", "uico");
}
<a href="#" id="myLink" class="dis"><span class="uico"></span></a>
if($(“#myLink”).hasClass(“dis”)){
$(“#myLink”).find(“span”).toggleClass(“uico”、“uicoGR”);
}否则{
$(“#myLink”).find(“span”).toggleClass(“uicoGR”、“uico”);
}
类应在单个字符串参数中传递,并用空格分隔,例如:
$("#myLink").find("span").toggleClass("uico uicoGR");
要切换的两个类名应该在第一个参数中传递,用空格分隔 此外,还可以将
hasClass()
条件添加到选择器中
$('.dis#mylink span').toggleClass('uico uicoGR') ;
编辑
再读一遍这个问题,不清楚您是否了解toggleClass()
的作用。此函数查找所有命名的类,如果找不到,则添加它们;如果找不到,则删除它们。看起来您想要的是根据是否找到第三个类来添加或删除类。为此,只需使用addClass()
和removeClass()
:
如果您坚持使用双类方法,那么Gus在这里有正确的答案,但我会质疑您是否需要这段代码。如果这些类用于CSS,那么您就不需要任何javascript,因为您已经有足够的信息来识别CSS选择器中的两种状态,而无需添加/删除uicoGR或uico 第一个状态(您使用.uicoGR的目的)是此CSS选择器:
#mylink span {put your CSS here}
#mylink.dis span {put your CSS here}
第二种状态(您使用.uico的目的)是此CSS选择器:
#mylink span {put your CSS here}
#mylink.dis span {put your CSS here}
当类“dis”存在时,第二个状态将覆盖第一个状态的CSS。原始问题中有一个需要解决的条件。我同意FiveTools,这个答案指出了一个jQuery使用问题,但没有回答问题。我假设原始代码已经解决了该条件,但如果两个分支在每个分支中都有完全相同的代码,为什么要使用if/else呢:
$(“#myLink”).find(“span”).toggleClass(“uico uicoGR”)代码>?