动态添加/删除类Jquery

时间:2011-05-20 21:14:19

标签: javascript jquery dynamic addclass

我正在创建一个自动提示框,其中有一个建议返回给它,我正在尝试添加/删除类“searchsuggestinnerulhighlight”到单个链接。这是动态返回的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(“背景颜色”......现在我已将其更改为添加类并删除类,但它不起作用。有什么想法吗?

3 个答案:

答案 0 :(得分:5)

变化:

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

要:

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

答案 1 :(得分:3)

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

这是一个严重狡猾的jQuery!

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

其次,您不需要获取id来获取包含被点击元素的jQuery选择。只需使用$(this)代替。

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

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

另一件事 - 在HTML5之前的HTML中不允许使用以数字开头的ID值。它的行为无法保证。

答案 2 :(得分:0)

我会把它放在评论中,但我不能。实现lonesomeday的更改,但是当他使用$(this).id时,尝试使用this.id,因为'this'应该已经是一个jquery对象。 (我们不想要$($(this))。)