jQuery removeClass()只删除一个匹配项

时间:2013-09-13 23:50:27

标签: jquery

这是问题所在。由于某些未知原因,此javascript函数仅删除带有“.folder”类的第一项上的突出显示,并且在单击其他任何项时不会将其从其余项中删除。我找不到任何可能错误的代码,但它不起作用。 jQuery API文档声明它应该影响与模式匹配的每个元素。

是什么给出了?

function init_ui(){
    // (some other functions omitted)
    $('.folder').click(function(){
        $('.folder').children().eq(0).removeClass('highlighted');
        $(this).children().eq(0).addClass('highlighted');
        $(init_ui);
    });
}
$(init_ui);

解决方案:

只需删除.eq(0),因为这意味着它只会匹配它们的第一个元素。

1 个答案:

答案 0 :(得分:1)

你在那里.eq(0)。这意味着你想要“该集合中的一个元素”(来自the jQuery docs)。具体而言,位置为零的元素,即匹配的第一个元素。如果您不想将选择限制为一个元素,请不要使用.eq()