我相信这是一个非常愚蠢的问题,并且有一个非常简单的答案,但我没有找到解决方案:
我有以下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)
似乎不起作用。
答案 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");