为什么jQuery addClass不适用于div元素?

Ada*_*eeg 0 javascript jquery

我有一个javascript方法,有2个参数,第一个是tr元素的ID,另一个是实际的div.我的add/remove类jQuery方法适用于第一个项目(我使用jQuery选择器获得).但是,当我在传递的Div中使用它时,它会抛出一个javascript错误.

onclick="ToggleTicketDetails('ticketDetails_@(ticket.TicketID)', this);"
Run Code Online (Sandbox Code Playgroud)

我显然可以在div上使用jQuery选择器来解决这个问题,但是我想知道它为什么会这样.

function ToggleTicketDetails(detailsId, divSender) {
    //alert(divSender);
    var element = $('#' + detailsId);
    //alert(element);
    if (element.hasClass("TicketDetailsOff")) { 
        element.removeClass("TicketDetailsOff").addClass("TicketDetailsOn");
        divSender.removeClass("DivAsExpand").addClass("DivAsCollapse");
    }
    else { 
        element.removeClass("TicketDetailsOn").addClass("TicketDetailsOff");
        divSender.removeClass("DivAsCollapse").addClass("DivAsExpand");

    }
}
Run Code Online (Sandbox Code Playgroud)

Ibr*_*han 6

divSender是DOM元素.使用jquery对象$(divSender)来应用removeClass,addClass如下所示.

function ToggleTicketDetails(detailsId, divSender) {
    var element = $('#' + detailsId);

    if (element.hasClass("TicketDetailsOff")) { 
        element.removeClass("TicketDetailsOff").addClass("TicketDetailsOn");
        $(divSender).removeClass("DivAsExpand").addClass("DivAsCollapse");
    }
    else { 
        element.removeClass("TicketDetailsOn").addClass("TicketDetailsOff");
        $(divSender).removeClass("DivAsCollapse").addClass("DivAsExpand");
    }
}
Run Code Online (Sandbox Code Playgroud)