2016-10-27 4 views
0

私は、テキストに書き出されたすべてのハイパーリンクを実際の動作中のハイパーリンクに変換する関数を使用しています。しかし、機能も同じようにそれらを壊す各<p>内部<img src="http://linktoimage.jpg">をターゲットにしています。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

喜んで助けになる –

関連する問題