2016-10-27 60 views
0

我正在使用函數將所有寫在文本中的超鏈接轉換爲實際工作的超鏈接。然而,功能還針對每個<img src="http://linktoimage.jpg">裏面<p>打破他們像:使用jQuery轉換超鏈接標記時忽略圖像標記

<img src="<a href="http://linktoimage.jpg">http://linktoimage.jpg</a>/> 

這是函數,我試圖添加一個.not('img')但這並沒有幫助,所以我怎麼忽略所有兒童的img標籤?

JS-功能:

jQuery('p').each(function(){ 
    jQuery(this).not('img').html(jQuery(this).html().replace(/((http|https|ftp):\/\/[\w?=&.\/-;#~%-]+(?![\w\s?&.\/;#~%"=-]*>))/g, '<a href="$1">$1</a> ')); 
    }); 

回答

2

使用的.text()得到只有在元素p的文本而不是html的()

$(document).ready(function(){ 
 
$('p').each(function(){ 
 
    $(this).html($(this).text().replace(/((http|https|ftp):\/\/[\w?=&.\/-;#~%-]+(?![\w\s?&.\/;#~%"=-]*>))/g, '<a href="$1">$1</a> ')); 
 
    }); 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<p>http://www.google.com</p> 
 
<p>http://www.google.com</p> 
 
<p>http://www.google.com</p> 
 
<p>http://www.google.com</p> 
 
<p>http://www.google.com</p> 
 
<p><img src="http://www.google.com"/></p>

+0

這是很整潔伴侶!乾杯。 –

+0

很高興能有所幫助 –