1

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

我有以下 JavaScript 函数:

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

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

我得到的错误正是我所期望的:

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

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

4

4 回答 4

2

尝试

function setStatus(order, operation, status, elem){
    elem.parent().find(".active").removeClass("active");
    elem.addClass("active");
}
于 2013-04-22T08:15:55.383 回答
2

尝试这个

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

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

于 2013-04-22T07:55:05.673 回答
1

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

$(elem)

此外,虚假$('.active')会导致问题,因此解决方案应该是:

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

但是,如果没有看到一些 HTML 与 JS 一起使用,我不能 100% 确定。

于 2013-04-22T08:01:40.263 回答
0

您的脚本中有一些语法错误,您可以使用它.addback()来链接它。

elem.parent(".active").removeClass("active").addBack().addClass("active");
于 2013-04-22T08:04:30.677 回答