我有一个UL和LI项目组成我的链接。每个链接都有一个" linkItem"和#34; roomActive"或" roomInactive"显示相应的BG图像,以及传递给我的函数的ID,以显示点击了哪个LI项目。
我正在尝试使用以下代码来完成此任务。
$(".roomLink")[id].removeClass('roomActive').addClass('roomInactive');
当我运行这个时,我得到一个错误,上面写着" Uncaught TypeError:对象#没有方法' removeClass' "
我也尝试过使用jQuery .css(" background")并返回" Uncaught TypeError:对象#没有方法' css' "
有什么想法吗?
答案 0 :(得分:0)
尝试如下,
$(".roomLink").eq(id).removeClass('roomActive').addClass('roomInactive');
假设 id
是您想要删除类和addClass的li
的索引。此假设基于您使用它的方式。 (如索引)
您的代码$(".roomLink")[id]
是一个dom对象,它没有addClass/removeClass
方法。
答案 1 :(得分:0)
尝试$($(".roomLink")[id]).removeClass
.....它可能会说,因为索引对象数组时返回的内容不是jquery对象。
答案 2 :(得分:0)
如果元素上有id,则按id:
$("#" + id).removeClass('roomActive').addClass('roomInactive');
但是如果你将点击处理程序直接绑定到li,那么你可以这样做:
$(".roomLink").click(function(){
$(this).removeClass('roomActive').addClass('roomInactive');
});
你可以像这样玩css:
$(this).css("background-image","url(imageurl)");
您需要传递css属性名称和值,并将其放在样式表中
答案 3 :(得分:0)
当您通过[]
访问元素时,您将返回DOM元素,而不是jQuery对象。请尝试eq(id)
(假设id是索引)。
如果您在单击其他链接时尝试切换类,那么这样的方法效果很好。
$('li').click( function() {
//swap inactive class in for currently active link item
$('li.active').removeClass('active').addClass('inactive');
//add active class to the clicked one
$(this).removeClass('inactive').addClass('active');
});