如何使用jQuery将文本转换为电子邮件链接

时间:2009-07-13 20:39:24

标签: jquery email html-table

我有一个HTML表,其中一列是电子邮件地址;抛开spambot问题,我想将此列中的每个<td>元素转换为mailto:link。

这就是我所拥有的:

$("table.data tbody tr td:last").each(function() {
    var email = $(this).val();
    $(this).html('<a href="mailto:' + email + '">' + email + '</a>');
});

这是表格(样本):

<tr>
    <td>Joe</td>
    <td>Shmoe</td>
    <td>example@example.net</td>
</tr>

出了什么问题?

2 个答案:

答案 0 :(得分:2)

您的jquery选择器错误。

当你执行'table.data tbody tr td:last'时,它只会选择最后一行的最后一个单元格。

您需要做的是:

$(document).ready(
    function()
    {
        //For each row...
        $('table.data tbody tr').each(
            function()
            {  
                //...find the last cell.
                var lastCell = $(this).find('td:last');
                $(lastCell).html('<a href="mailto:' + $(lastCell).text() + '">' + $(lastCell).text() + '</a>');
            }
        );
    }
);

工作演示:http://jsbin.com/umiza 代码:http://jsbin.com/umiza/edit

答案 1 :(得分:1)

您应该使用 .text()而不是 .val()

$("table.data tbody tr td:last").each(function() {
    var email = $(this).text();
    $(this).html('<a href="mailto:' + email + '">' + email + '</a>');
});