2011-02-03 105 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>