0

1つの列に電子メールアドレス(+/- 60)が含まれている大きなテーブルがあり、各アドレスの後に電子メールアイコンを追加するように指示されました。anchorsを使用して電子メールリンクを選択しようとし.hrefまし.indexofたが、どこにも到達していません(したがってコードがありません)。

<img src="/a/path/email.jpg" alt="e-mail" />リンクにjQueryではなく使用中のバニラJavaScripthrefが含まれている場合、追加する方法についてサポートを受けることはできますか?mailto

4

3 に答える 3

2

HTML

<table id="table">
    <tr>
        <td><a href="mailto:yankel@frieman.com">yankel@frieman.com</a></td>
    </tr>
</table>

javascript

var table = document.getElementById("table"),
    links = table.getElementsByTagName("a"),
    linksLength = links.length,
    i = 0,
    link,
    href,
    text;

   for(; i>linksLength; i++){
      link = links[i];
      href=link.href,
      text = link.childNodes[0].nodeValue;

      if(href.indexOf("mailto:")){
         link.childNodes[0].nodeValue += text+ "<img src='path/to/email.png'>";
      }
 }

http://jsfiddle.net/adardesign/jJZCd/を参照してください

于 2013-02-04T15:22:24.900 に答える
2

使用できる関数は次のとおりです。

(function(allLinks)
{
    var i, imgHTML = '<img src="mail.png" alt="mail" />';
    for (i = 0; i < allLinks.length; i++)
    {
        if (allLinks[i].getAttribute('href').indexOf('mailto') > -1)
        {//or allLinks.item(i).getAttribute('href').indexOf('mailto')
         //calling the item method is said to be faster, on most browsers
            allLinks[i].innerHTML += imgHTML;
        }
    }
}(document.getElementsByTagName('a')));

もちろん、このIIFEを通常の関数に変換して、loadイベントなどで呼び出すこともできます...フォークされた
@adardesignのフィドル、ここにあります

于 2013-02-04T15:25:26.250 に答える
0

CSSを使用してこの問題を解決できます

CSS

a[href^="mailto:"]:after{
    content:url("path/to/email.png")
}

http://jsfiddle.net/adardesign/QWsVM/を参照してください

于 2013-02-04T15:35:33.927 に答える