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 に答える