动态添加/删除类Jquery

Dynamic Add/Remove Class Jquery

本文关键字:Jquery 删除 添加 动态      更新时间:2023-09-26

我正在创建一个自动建议框,该框返回了一个of建议,我正在尝试将类"searchsuggestinnerulshighlight"添加/删除到各个链接。这是动态返回的ta

    <DIV id="searchsuggestinner">
    <UL id=searchsuggestinnerul>
    <LI>
    <A href="#" id="1" class = "hoverme" onMouseDown="searchsuggestSubmit('appalachian trail');">appalachian trail</A>
   </LI>
   </UL>
   </DIV>

这是我的jQuery:

 $(".hoverme").live("mouseover mouseout", function(event) {
    if ( event.type == "mouseover" ) {
       $("#" + mocount).removeClass("searchsuggestinnerulhighlight");
       mocount = $(this).attr('id');
       $("#" + mocount).addClass("searchsuggestinnerulhighlight");
    } else {
       $("#" + mocount).removeClass("searchsuggestinnerulhighlight");
    }
 });

最初我有.css("背景色"……现在我把它改为添加类和删除类,但它不起作用。有什么想法吗?

更改:

$("#" + mocount).add("searchsuggestinnerulhighlight");

收件人:

$("#" + mocount).addClass("searchsuggestinnerulhighlight");
mocount = $(this).attr('id');
$("#" + mocount)

这真是狡猾的jQuery!

首先,您不需要attr来获得id。你可以用this.id得到它。这要快得多。

其次,您不需要获得id就可以获得包含已单击元素的jQuery选择。只需使用$(this)即可。

最后,正如Gabe所说,使用addClass而不是add。所以,总而言之:

$(this).addClass('searchsuggestinnerulhighlight');

不过,还有一件事——在HTML5之前的HTML中不允许使用以数字开头的ID值。它的行为不能得到保证。

我会把它放在注释中,但我做不到。实现loneomeday的更改,但当他使用$(this).id时,请尝试仅使用this.id,因为"this"应该已经是jquery对象。(我们不想要$($(这个))。)