这是我的问题。我正在为论坛制作徽章,我想从页面上的链接检查用户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。
如何在页面上循环使用具有相同选择器名称的多个元素,并根据条件为真添加特定的类?