jQuery-如何在条件适用的情况下将Class添加到每个选定的元素

时间:2018-06-29 05:56:24

标签: javascript jquery each

这是我的问题。我正在为论坛制作徽章,我想从页面上的链接检查用户ID的每个注释,然后对照预定义ID的数组检查该ID。如果有匹配项,我将在该注释中添加一个新类。大多数代码都能正常工作,但是我遇到麻烦的部分是使用$(selector).each

var people = ["361230611154","other"];
var animals = ["361230611434", "other"];
var commentAuthorUrl = $('.comment-author a').attr('href');
var commentStr = commentAuthorUrl.split("/")[4];
var commentID = commentStr.split("-")[0];

$('.comment-meta span').each(function(index) {

 if ($.inArray(commentID, people) !== -1) {

 $(this).addClass('people');

} else if ($.inArray(commentID, animals) !== -1) {

 $(this).addClass('animal');

}
else {
  console.log("error");
}

});

发生的事情是首先在页面上被评估为真,然后“ .comment-meta span”的所有其他实例将获得该条件的新类。因此,例如,如果匹配首先在“ people”上进行,则每个“ .comment-meta span”都会得到一个名为“ people”的新类,而其余的代码对于“ .comment-meta span”的其他实例将被忽略。 ”。

我尝试返回false,但是该代码仅适用一次,因此,如果同一个人稍后在页面上发表评论,则他们不会获得徽章。我无法更改HTML。

如何在页面上循环使用具有相同选择器名称的多个元素,并根据条件为真添加特定的类?

0 个答案:

没有答案