2017-10-12 4 views
0

の最後の要素の構文解析:Javascriptが唯一str.replaceが唯一の配列である、ここで私の配列 の最後の要素に働く問題有するアレイ

["omao","carlton","judging"]

、ここでは私のjavascript関数

です

function emoji(data){ 
 
\t 
 
\t //console.log(data); 
 

 
\t 
 
\t $(".message-content").each(function(){ 
 
\t \t var elem = $(this); 
 
\t \t var str = elem.html(); 
 
\t \t //var res = str.replace(":hey", '<img draggable="false" class="emoji jumboable" alt="emoji" src="https://discordchat.com/api/omao.png">'); 
 
\t \t for(var i = 0;i < data.length; i++){ 
 
\t \t \t var res = str.replace(":"+data[i], '<img draggable="false" title="Added using the WLA Poor Mans Nitro" class="emoji jumboable" alt="emoji" src="https://discordchat.com/api/'+data[i]+'.png" />'); 
 
\t \t \t elem.html(res); 
 
\t \t } 
 
\t \t 
 
\t \t 
 
\t }); 
 
\t 
 
}

あなたはそれを実行し、唯一:judgingは画像に置き換えられ、:omao:carltonは無視されます。私は見つけることができるすべての "解決策"を試みたが、すべて同じ問題を抱えていた。

+0

スニペットを更新しました。貼り付けにバグがありました。 –

+0

あなたはすでに15以上の回答を求めていますが、受け入れ率がゼロであることを見て、[受け入れる](https://stackoverflow.com/help/someone-answers)を忘れないでください。 – Icepickle

答えて

3

あなたが持っている問題は、あなたがしていないだけで、最後の反復があなたのようにそれを変更することができます

設定されます1である理由ですでに変更、文字列、上、元の文字列に置き換える繰り返しているということですそう

var str = elem.html(); 
for(var i = 0;i < data.length; i++){ 
    str = str.replace(":"+data[i], '<img draggable="false" title="Added using the WLA Poor Mans Nitro" class="emoji jumboable" alt="emoji" src="https://discordchat.com/api/'+data[i]+'.png" />'); 
} 
// and set it only once 
elem.html(res); 
+0

これは屈辱的でした。ありがとう、問題は –

0

変更

elem.html(res); 

これを複数回(.click()のように)実行する場合は.each()の直前にelem.empty()を置いてください。

+0

私が見ているものから解決した、彼はproblablyのようなHTMLを持っています: 'amao:carlton:judging'(彼は要素のhtmlコンテンツをプリロードしているのを見て)そして、 – Icepickle

関連する問題