我想我可以使用这种简单的方法在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()获取内容。也许这完全是一个不正确的方法,如果它是我欣赏一些方向。
答案 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);
});