簡體   English   中英

使用jQuery添加mailto:

[英]Add mailto: with jQuery?

<table id="here" border="1">
    <tr><td>London</td><td>london@us.uk</td><td>aaa</td><td>aaa</td></tr>
    <tr><td>Manchester</td><td>manchester@us.uk</td><td>aaa</td><td>aaa</td></tr>
    <tr><td>Liverpool</td><td>liverpool@us.uk</td><td>aaa</td><td>aaa</td></tr>
    <tr><td>Ipswich</td><td>ipswich@us.uk</td><td>aaa</td><td>aaa</td></tr>
</table>

是否可以添加鏈接mailto:對於帶有jQuery的電子郵件地址的第二列(不是修改HTML)? 如果有,怎么樣?

http://jsfiddle.net/zwsMD/1/

你可以用一個帶有mailto: href: http//jsfiddle.net/zwsMD/5/ a元素替換每個第二個td的內容。

​$("#here td:nth-child(2)").each(function() {
    var email = $(this).text();

    // replace contents
    $(this).html(
        $("<a>").attr("href", "mailto:" + email).text(email)
    );
});​​​​​​​​​​​​​​​​​​​​

你可以這樣做

​$('td:nth-child(2)').each(function(){
   var text = $(this).text();
    var href = "mailto:"+text;
    var $a = $('<a>', { href: href, text: text});
    $(this).text('').append($a);
});​​​​​​​​​​​​​​​​​​​​

在這里擺弄http://jsfiddle.net/zwsMD/6/

假設它始終是每行的第二個td ,您可以迭代這些元素並將contents wrapa元素中:

$("#here td:nth-child(2)").each(function() {
    $(this).contents().wrap("<a href='mailto:" + $(this).text() + "'>");
});​

這是一個有效的例子

您將需要遍歷每一行,找到您想要的單元格並在內容周圍環繞一個鏈接。 你可以使用wrapInner

$("#here tr").each(function() {
    var td = $(this).children().eq(1);
    var email = "mailto:" + td.text();
    td.wrapInner($("<a>").prop("href", email));
});​

實例

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM