在DOM元素上使用JQuery函数

时间:2013-04-22 07:51:30

标签: javascript jquery dom

我相信这是一个非常愚蠢的问题,并且有一个非常简单的答案,但我没有找到解决方案:

我有以下JavaScript函数:

function setStatus(order, operation, status, elem){
    elem.parent().$(".active").removeClass("active");
    elem.addClass("active");
}

Elem是我的HTML中的Image元素,我确信它是正确的,通过alert(elem);检查它的类型

我得到的错误正是我的预期:

  

对象#< HTMLImageElement>没有方法'父'

我已经知道这是因为elem是一个DOM元素而不是JQuery元素,这意味着不可能使用像parent()addClass()这样的函数。如何在我的元素上使用所有JQuery函数?有没有办法将DOM元素转换为JQuery元素?我在互联网上多次发现此问题的this应该是$(this),但$(elem)似乎不起作用。

4 个答案:

答案 0 :(得分:2)

试试这个

$(elem).parent().removeClass("active");
 $(elem).addClass("active");

删除$(".active")。我认为这也是罪魁祸首。

答案 1 :(得分:2)

尝试

function setStatus(order, operation, status, elem){
    elem.parent().find(".active").removeClass("active");
    elem.addClass("active");
}

答案 2 :(得分:1)

.parent()是一个jquery函数,所以为了使用它,你必须“jqueryify”你正在使用的元素,所以:

$(elem)

另外,虚假的$('.active')会导致问题,所以解决方案应该是:

$(elem).parent().removeClass("active");

然而,如果没有看到一些与JS一起使用的HTML,我就无法100%确定。

答案 3 :(得分:0)

您的脚本中存在一些语法错误,您可以使用此.addback()将其链接起来。

elem.parent(".active").removeClass("active").addBack().addClass("active");