2 Stimmen

Mailto: mit jQuery hinzufügen?

<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>

Ist möglich, fügen Sie Link mailto: für zweite Spalten mit E-Mail-Adressen mit jQuery (nicht ändern HTML)? Wenn ja, wie?

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

5voto

pimvdb Punkte 146174

Sie könnten einfach den Inhalt jeder zweiten td mit einer a Element mit einer mailto: href: http://jsfiddle.net/zwsMD/5/ .

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

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

2voto

Nicola Peluchetti Punkte 74314

Sie könnten etwa so vorgehen

$('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);
});

hier fummeln http://jsfiddle.net/zwsMD/6/

2voto

James Allardice Punkte 161987

Angenommen, es ist immer der zweite td jeder Zeile können Sie über diese Elemente iterieren und wrap die contents in einem a Element:

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

Hier ist ein Arbeitsbeispiel .

2voto

Alex Turpin Punkte 45303

Sie müssen in jeder Zeile eine Schleife durchlaufen, die gewünschte Zelle finden und den Inhalt mit einem Link umschließen. Sie können verwenden wrapInner für diese.

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

Live-Beispiel

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X