如何使用jQuery而不是dojo执行以下代码(使URL可单击并显示图像)?

如何使用jQuery而不是dojo执行以下代码(使URL可单击并显示图像)?,jquery,Jquery,我正在重写一个用户脚本,并用jQuery替换dojo的使用,但后来我发现了一些东西,我迷路了( 这是dojo的脚本,运行良好: dojo.query(".body").forEach(function(node, index, arr){ kmfa.check(node,index); }); kmfa.check = function(node){ //check for links/images and replace some stuff regex= /(htt

我正在重写一个用户脚本,并用jQuery替换dojo的使用,但后来我发现了一些东西,我迷路了(

这是dojo的脚本,运行良好:

dojo.query(".body").forEach(function(node, index, arr){
      kmfa.check(node,index);
});

kmfa.check = function(node){    //check for links/images and replace some stuff
   regex= /(https?:\/\/([-\wäöü\.]+)+(:\d+)?(\/([-=_\w\.\%\@\#\~;:,\(\)\/\+]*(\?[^<>\s]+)?)?)?)/gi;
   node.innerHTML = node.innerHTML.replace( /<a[^>]+>([^<]+)<\/a>/gi, '$1' );
   node.innerHTML = node.innerHTML.replace( /<wbr>/g, '' );
   if (node.innerHTML.indexOf('.png') != -1 || node.innerHTML.indexOf('.gif') != -1 ||  node.innerHTML.indexOf('.jpg') != -1 || node.innerHTML.indexOf('.tif') != -1 || node.innerHTML.indexOf('.bmp') != -1){
       node.innerHTML = node.innerHTML.replace( regex, '<img src="$1" class="imgLimit" ></br><a href="$1">$1</a>' );    
   }else{
       node.innerHTML = node.innerHTML.replace( regex, '<a href="$1" target="_blank">$1</a>' ); 
   }
}
dojo.query(“.body”).forEach(函数(节点、索引、arr){
kmfa.检查(节点、索引);
});
检查=函数(节点){//检查链接/图像并替换一些内容
正则表达式=/(https?:\/\/([-\wäöü\.]+)+(:\d+)(\/([-=\uw\.\%\@\\\\~:,\(\)\/\+]*(\?[^\s]+)/gi;
node.innerHTML=node.innerHTML.replace(/);
}否则{
node.innerHTML=node.innerHTML.replace(regex.);
}
}
现在我如何让它与jQuery一起工作

到目前为止,我只知道:

$('#forum').each(function (ind){
    $(this).text(kmsi.replaceURLWithHTMLLinks($(this).text() ) )    
});

kmsi.replaceURLWithHTMLLinks = function(text) {
   var exp = /(\b(https?|ftp|file):\/\/[-A-Z0-9+&@#\/%?=~_|!:,.;]*[-A-Z0-9+&@#\/%=~_|])/ig;
   return text.replace(exp,"<a href='$1'>$1</a>"); 
}
$(“#论坛”)。每个(功能(ind){
$(this).text(kmsi.replaceurlwithhtmlinks($(this.text()))
});
kmsi.replaceurlwithhtmlinks=函数(文本){
var exp=/(\b(https?| ftp |文件):\/\/[-A-Z0-9+&@#\/%?=~~|!:,.;]*[-A-Z0-9+&@#\/%=~|]/ig;
返回文本。替换(exp,“”);
}
但这根本不起作用

(我想会有这样的评论:“当jQuery运行时,为什么要更改它?”。事先回答这些问题:我只想学习jQuery!)


欢迎任何帮助,谢谢!

我发现有几件事是错误的:

第一:

$('#forum').each(function (ind){
    ....
});
#forum
将选择id为forum的元素。由于id应该是唯一的,因此只有一个结果,因此
中没有实际点。每个

如果您试图迭代此元素的所有子元素,则可以执行以下操作:

 $('#forum').children().each(function (ind){
      ....
 });
另外,如果要将HTML代码插入dom元素,则应使用
.HTML()
方法,而不是使用
.text()
方法:

$(this).html(kmsi.replaceURLWithHTMLLinks($(this).text() ) )  

我没有讨论regex部分。

你能发布一些示例html吗?你知道dojo版本具有预期效果吗?谢谢。这修复了它。我一定是花了太多时间才看到错误。