替换链接属性以防止垃圾邮件

时间:2012-04-29 19:12:40

标签: jquery spam-prevention

我想我可以使用这种简单的方法在jQuery中创建一个低级别的垃圾邮件过滤器 -

<a class="filter" href="mailto:johndoe[at]nowhere[dot]com">johndoe[at]nowhere[dot]com</a>

$('.filter').each(function() {
  $(this).html().replace(('[dot]', '.'));
  $(this).html().replace(('[at]', '@'));
});

但没有任何反应。原生替换功能似乎不适应jQuery。我也尝试使用val()和text()获取内容。也许这完全是一个不正确的方法,如果它是我欣赏一些方向。

3 个答案:

答案 0 :(得分:2)

使用以下内容:

$('.filter').each(function() {
  var that = $(this);

  that.attr('href', that.attr('href').replace('[dot]', '.')
                                     .replace('[at]', '@'));

  that.html(that.html().replace('[dot]', '.').replace('[at]', '@'));
});

答案 1 :(得分:1)

替换功能不会修改原始字符串。 你需要像这样使用它:

$(this).html( $(this).html().replace('[dot]', '.') )

答案 2 :(得分:0)

$('.filter').each(function() {
  var mail = $(this).html().replace('[dot]', '.').replace('[at]', '@');
  $(this).html(mail);
  $(this).attr('href',"mailto:"+mail);
});