有没有办法改善这个臭名昭著的语法...(使用数组)?
$("#rte").val(function(i, v) {
return v.replace(':)','<img src="rte/icons/emoticon_happy.png" />')
});
$("#rte").val(function(i, v) {
return v.replace(';)','<img src="rte/icons/emoticon_wink.png" />')
});
最佳答案
您可以通过为所有微笑提供字典并遍历它们,使此代码的方式可扩展性更高:
var smileDict = {
happy: ':)',
wink: ';)',
sad: ':(',
cool: 'B)'
}
$('#rte').val(function(i, v) {
for (var p in smileDict) {
if (smileDict.hasOwnProperty(p)) {
v = v.replace(smileDict[p], '<img src="rte/icons/emoticon_' + p + '.png" />');
}
}
return v;
});
See example →
编辑:要对此进行更新,如注释中要求的预览区域:
var smileDict = {
happy: ':)',
wink: ';)',
sad: ':(',
cool: 'B)'
};
var rteVal = $('#rte').val();
for (var p in smileDict) {
if (smileDict.hasOwnProperty(p)) {
rteVal = rteVal.replace(smileDict[p], '<img src="rte/icons/emoticon_' + p + '.png" />');
}
}
$('#previewcontent').html(rteVal);