2013-04-01 168 views
1

如何將頁面中的所有文本鏈接轉換爲實際鏈接?將所有文本鏈接轉換爲實際鏈接

例如,我想改變這一切的文字鏈接是這樣的:

<p>http://www.google.com</p> 

或表是這樣的:

<td>http://www.google.com</td> 

成這樣:

<a href="http://www.google.com">http://www.google.com</a> 

這:

<td><a href="http://www.google.com">http://www.google.com</a></td> 
+0

爲什麼你有與不是超鏈接地址的網頁? –

+0

@LeeTaylor,你以前從未見過這個?例如,某人在某個超鏈接中粘貼的博客頁面,並且想要自動將其鏈接。我認爲這是一個非常好的問題,不值得投票。 – Jess

+1

@Jessemon當然可以。我試圖試圖提供一些關於OP對他的頁面內容有多少控制的信息。 –

回答

1

這是你所需要的:

<html> 
<head> 
    <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script> 
    <script> 
    function createLinks(){ 
     $('p, td').filter(function() { 
     return this.innerHTML.match(/(http|ftp|https):\/\/[\w\-_]+(\.[\w\-_]+)+([\w\-\.,@?^=%&amp;:/~\+#]*[\w\-\@?^=%&amp;/~\+#])?/); 
     }).each(function(){ 
     var link = $('<a>', { href: this.innerHTML, 
           text: this.innerHTML }); 

     if(this.tagName == "P") 
      this.parentNode.replaceChild(link[0], this); 
     else{ 
      this.removeChild(this.childNodes[0]) 
      this.appendChild(link[0]); 
     } 
     }); 
    } 

    $(document).ready(function(){ 
     $('#create_links').click(function(){ 
     createLinks(); 
     }); 
    }); 
    </script> 
    <style> 
    a{ 
     display:block; 
    } 
    </style> 
</head> 
<body> 
    <p>This shouldn't became a link</p> 
    <p>http://www.thisshouldbecamealink.com</p> 
    <p>http://www.anotherlink.com</p> 
    <table> 
    <tr> 
     <td>Not a link</td> 
    </tr> 
    <tr> 
     <td>http://www.validlink.com</td> 
    </tr> 
    </table> 
    <button id="create_links">Create links</button> 
</body> 
</html> 
+0

謝謝,很好! – Chin

相關問題