如何使用jQuery而不是dojo执行以下代码(使URL可单击并显示图像)?
我正在重写一个用户脚本,并用jQuery替换dojo的使用,但后来我发现了一些东西,我迷路了( 这是dojo的脚本,运行良好:如何使用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
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版本具有预期效果吗?谢谢。这修复了它。我一定是花了太多时间才看到错误。