我有一个我正在使用的脚本,它会将常规链接中的链接更改为 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);
});
});
如何修改脚本以将电子邮件留在那里但是正确创建链接?
答案 0 :(得分: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
。
答案 1 :(得分:1)
替换
$(this).text(e)
通过
$(this).text('email');
text('some string')
用其参数替换元素的内容。因此,在您的情况下,链接的内容将被电子邮件地址替换。
答案 2 :(得分:1)
如果你打算通过JS去做,那么为什么还要把地址放在标签里呢?
为什么不在(文档).ready()
上尝试这样的事情var theaddress ="mailto:email@email.com"
$('a.email').attr('href',theaddress);
编辑:
答案 3 :(得分:0)
如果了解你的问题,这是解决方案:
$(function() {
$('a.email').each(function(){
var e = this.title.replace('/','@');
$(this)
.attr('href','mailto:' + e)
.text(e.substr(0,e.indexOf("@")));
});
});
查看jsfiddle