我正在使用一个函数将文本中写出的所有超链接转换为实际工作的超链接。但是,该功能还会在每个<img src="http://linktoimage.jpg">
中定位<p>
,将其分解为:
<img src="<a href="http://linktoimage.jpg">http://linktoimage.jpg</a>/>
这是函数,我试图添加一个.not('img')
但这没有用,所以如何忽略所有子img-tags?
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> ') );
});
答案 0 :(得分:2)
使用.text()只获取元素p中的文本而不是.html()
a="0123456789"
inp=[1,2,6,1]
start_pos=[0] #Fix first start position
x=0
for i in inp: #Calculate start positions of slices
x=x+i
start_pos.append(x)
res=[]
for i in range(len(inp)): #Cut out slices
res.append(int(a[start_pos[i]:start_pos[i]+inp[i]]))
print (res)
[0, 12, 345678, 9]
$(document).ready(function(){
$('p').each(function(){
$(this).html( $(this).text().replace(/((http|https|ftp):\/\/[\w?=&.\/-;#~%-]+(?![\w\s?&.\/;#~%"=-]*>))/g, '<a href="$1">$1</a> ') );
});
});