2017-03-07 50 views
0

所以我读this question,我想用它的答案,但作为覆盖我放入的一切,如果我例如添加一个红色的div它消失。我怎样才能使这个JavaScript的工作以及与我的其他HTML ...url来源图片javascript

var newHTML = replaceWithImgLinks($(document.body).text()); 
$(document.body).html(newHTML); 
function replaceWithImgLinks(txt) { 
var linkRegex = /([[email protected]:%_\+.~#?&//=]{2,256}\.[a-z]{2,4}\b(\/[[email protected]:%_\+.~#?&//=]*)?(?:jpg|jpeg|gif|png))/gi; 
var replacement = '<a href="$1" target="_blank"><img class="sml" src="$1" /></a><br />' 
return txt.replace(linkRegex, replacement); 
} 

(IM愚蠢的,我的JavaScript知识不是最好的),如果你能解释为什么它不工作藏汉我会很满意:)

这里是一个fiddle藏汉所以你可以看到我的问题:

所以我试图做的是使所有在我的div的IMGS索马里红新月会更改为图片“,而不是整个身体我认为“

回答

1

如果你不需要参数s的URL,你可以在正则表达式的末尾使用\S*

/([[email protected]:%_\+.~#?&//=]{2,256}\.[a-z]{2,4}\b(\/[[email protected]:%_\+.~#?&//=]*)?(?:jpg|jpeg|gif|png))\S*/gi 

而且,我已经改变了,你叫&内的JQuery替换类:很多

function replaceWithImgLinks(txt) { 
 
    var linkRegex = /([[email protected]:%_\+.~#?&//=]{2,256}\.[a-z]{2,4}\b(\/[[email protected]:%_\+.~#?&//=]*)?(?:jpg|jpeg|gif|png))\S*/gi; 
 
    return txt.replace(linkRegex, '<a href="$1" target="_blank"><img class="sml" src="$1" /></a><br />'); 
 
} 
 

 
var newHTML = replaceWithImgLinks($('.chatMessages').html()); 
 
$('.chatMessages').html(newHTML);
.chatMessages{ 
 
    height:200px; 
 
    width:200px; 
 
    background-color:red; 
 
} 
 
.sml{ 
 
    height:100px; 
 
    width:100px; 
 
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.0.0/jquery.min.js"></script> 
 
<div class = "chatMessages"> 
 
https://i.stack.imgur.com/qgNyF.png?s=328&g=1 
 
</div>

+0

哦,谢谢,我试图设置文件之前。(chatMessages。)但它没有工作,但我想你只需要设置.chatMessages而不是文档正文,并感谢以及帮助我​​与我的“下一个”与参数问题! –

+0

是否有另一种方法来删除参数比\ S *,因为它弄乱了我的PHP的某种原因? –