0

リンクを通常のリンクからmailtoリンクに変更するスクリプトを使用しています。ほとんどの悪いロボットは JavaScript を解析しないため、電子メール アドレスをそのまま入力したり、 @記号をスペースを空けてつづったりするよりは少しましです。

HTML は次のようにレンダリングする必要があります。

セールスマネージャーにメールでお問い合わせください。

電子メールという単語は、電子メールへのリンクになります。ただし、JS コードを使用すると、次のようにレンダリングされます。

email@email.com でセールス マネージャーに連絡してください。

最初の文をページのレンダリング方法にしたいと思います。

コードは次のとおりです。

HTML:

<p>Contact our Sales Manager by
   <a class="email" title="email/email.com" href=" ">email</a>.
</p> 

JS:

$(function() {

  $('a.email').each(function(){

    var e = this.title.replace('/','@');

    $(this).text().replace('/','@');

    this.href=" ";

    this.href = 'mailto:' + e; $(this).text(e);

   });
});

スクリプトを変更して email という単語を残したまま、リンクを正しく作成するにはどうすればよいですか?

4

4 に答える 4

1

これが実際の例です: http://jsfiddle.net/smLQ7/

これを修正するには、次のように JavaScript の一部を削除するだけです。

$(document).ready(function() {
  $('a.email').each(function(){
    var e = this.title.replace('/','@');
    $(this).text().replace('/','@');
    this.href=" ";
    this.href = 'mailto:' + e;
   });
});​

このコードを削除しました:

$(this).text(e);

ページ内容での差し替えemailを担当しました。email@email.com

于 2012-12-05T04:24:02.593 に答える
1

交換

$(this).text(e)

$(this).text('email');

text('some string')要素のコンテンツをその引数で置き換えます。したがって、あなたの場合、リンクのコンテンツは電子メール アドレスに置き換えられていました。

于 2012-12-05T04:24:20.553 に答える
1

JS 経由で行う場合は、わざわざアドレスをタグに入れる必要はありません。

(document).ready() でこのようなことを試してみませんか

var theaddress ="mailto:email@email.com"

$('a.email').attr('href',theaddress);

編集:

ここでの作業: http://jsfiddle.net/sMnrR/

于 2012-12-05T04:26:16.433 に答える
0

あなたの問題を理解していれば、ここに解決策があります:

$(function() {
  $('a.email').each(function(){

    var e = this.title.replace('/','@');
    $(this)
        .attr('href','mailto:' + e)
        .text(e.substr(0,e.indexOf("@")));
   });
});​

jsfiddleを見てください

于 2012-12-05T04:39:23.917 に答える