2011-02-03 80 views
0

我有一个jQuery的功能,以隐藏在网页上的电子邮件ID,以避免spambots。 我试图用这个函数的帮助来将类'mailme'的所有span标签替换为有效的email标识符。该代码正在为1 span标签工作,但由于它在每种方法的帮助下更改为多个跨度,因此不起作用。问题与JQuery每个功能

的Html

<span class="mailme">myemail at mydomain dot com</span> 

jQuery的

$('span.mailme').each(function(){ 
var spt = "#" + $(this).attr("id"); 
var at =/at /; 
var dot =/dot /g; 
var addr = $(spt).text().replace(at,"@").replace(dot,"."); 
$(spt).after('<a href="mailto:'+addr+'" title="Send an email">'+ addr +'</a>') 
.hover(function(){window.status="Send a letter!";}, function(){window.status="";}); 
$(spt).remove(); 
}); 
+3

那些引号看起来可疑`:)` – 2011-02-03 16:59:48

+2

您正试图从一个没有它的元素获取ID。 – StrouMfios 2011-02-03 17:02:34

回答

3

现场演示:http://jsfiddle.net/g7Szt/2/

$('span.mailme').each(function() { 
    var addr = $(this).text().replace(/ at /, "@").replace(/ dot /g, "."), 
     s = '<a href="mailto:' + addr + '" title="Send an email">' + addr + '</a>', 
     link = $(s); 

    link.hover(function() { 
     window.status = "Send a letter!"; 
    }, function() { 
     window.status = ""; 
    }); 

    $(this).replaceWith(link); 
}); 

<head> 
    ... 
    <script> 
     $(function() { 
      // place all jQuery code here 
     }); 
    </script> 
    ... 
</head>