2011-06-19 3 views
0

私はuserscriptを書き直していて、dojoの使用をjQueryに置き換えていますが、その後私は何かに出くわしました。私は迷ってしまいました。 :(dojoの代わりにjQueryを使用して次のコードを実行するにはどうすればよいですか?

これは道場でスクリプトがあり、それがうまく働いた:

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>'); 
    } 
} 

を今、私は、これは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>"); 
} 

しかし、それはまったく動作していません。

あなたがそれを働かせているときに、あなたを助けてくれる?それらにあらかじめ答えてください:私はちょうどjQueryを学びたいです!)

助けてください、ありがとう!

+0

dojoのバージョンに望ましい効果があることを知っているhtmlの例を投稿できますか?ありがとう。 –

答えて

1

私が間違っていることがわかります物事のカップルがあります:

まず:

$('#forum').each(function (ind){ 
    .... 
}); 

#forumは、IDのフォーラムを持つ要素を選択します。 IDは一意でなければならないので、ただ一つの結果しかないので、.eachには実際のポイントはありません。
あなたは、あなたが行うことができます。この要素のすべての子の上にOT反復処理をしようとしている場合:

$('#forum').children().each(function (ind){ 
     .... 
}); 

もう一つは、あなたがDOM要素にHTMLコードを挿入したい場合は、あなたが.html()メソッドを使用する必要がありますがなく、 .text()メソッドを使用します。

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

私は正規表現の部分には入っていません。

+0

それを固定した私はあまりにも長い間働いていて、間違いを見ていないにちがいありません。 –

関連する問題