2

我想我可以使用这种简单的方法在 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() 获取内容。也许这完全是一种不正确的方法,如果是的话,我会很感激一些方向。

4

3 回答 3

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]', '@'));
});
于 2012-04-29T19:15:53.480 回答
1

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

$(this).html( $(this).html().replace('[dot]', '.') )
于 2012-04-29T19:16:45.293 回答
0
$('.filter').each(function() {
  var mail = $(this).html().replace('[dot]', '.').replace('[at]', '@');
  $(this).html(mail);
  $(this).attr('href',"mailto:"+mail);
});
于 2012-04-29T19:27:22.837 回答