2016-10-27 3 views
0

Ich benutze eine Funktion, um alle im Text geschrieben Hyperlinks in tatsächlich funktionierende Hyperlinks zu konvertieren. Doch die Funktion richtet sich auch <img src="http://linktoimage.jpg"> in jedem <p> sie sich wie zu brechen:Ignorieren Bild-Tags beim Konvertieren von Hyperlink-Markup mit jQuery

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

Dies ist die Funktion, habe ich versucht, eine .not('img') hinzufügen, aber das hat nicht geholfen, so wie ignoriere ich alle Kinder img-Tags?

js-Funktion:

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

Antwort

2

Verwenden .text() und nicht nur den Text in dem Element p zu bekommen, als .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

Das ist wirklich ordentlich ist Kamerad! Prost. –

+0

Ich bin froh, Ihnen helfen zu können –

Verwandte Themen