使.each()只运行一次.text()

时间:2014-06-17 18:26:09

标签: jquery each

标题可能有点误导......但我会尝试更好地解释它。

$('.class').each(function(){
    username = $(this).text();
    alert(username);
});

在这个页面上,我们有一个带有“class”类的span-tag。只有在用户名第一次出现在页面上时,是否可以使其发出警报?例如,如果相同的用户名在页面上出现10次,我不希望它提醒用户名10次,但只是第一次。

这可能吗?伪有点代码:

if username appears more than once
    alert username once

由于

1 个答案:

答案 0 :(得分:2)

在这种情况下,我们的想法是使用一个对象作为地图来存储您之前看到的用户名:

var seen = {};
$('.class').each(function(){
    username = $.trim($(this).text());
    if (seen[username]) return;
    alert(username);
    seen[username] = 1;
});

请注意,HTML中经常会在文本周围留下不需要的空格,主要是新行。这就是我使用$.trim的原因。