Как использовать jQuery для преобразования текста в ссылки электронной почты - PullRequest
1 голос
/ 14 июля 2009

У меня есть таблица HTML с одним столбцом, являющимся адресами электронной почты; Помимо проблем со спамботом, я хотел бы преобразовать каждый элемент <td> в этом столбце в ссылку mailto:

Вот что у меня есть:

$("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 ]

2 голосов
/ 14 июля 2009

Ваш селектор 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 голос
/ 14 июля 2009

Вы должны использовать .text () вместо .val () :

$("table.data tbody tr td:last").each(function() {
    var email = $(this).text();
    $(this).html('<a href="mailto:' + email + '">' + email + '</a>');
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...