用jQuery改进val替换
这是一种改进这种臭名昭著的语法的方法吗。。。(使用阵列)用jQuery改进val替换,jquery,replace,Jquery,Replace,这是一种改进这种臭名昭著的语法的方法吗。。。(使用阵列) $(“#rte”).val(函数(i,v){ 返回v.replace(':)',“”) }); $(“#rte”).val(函数(i,v){ 返回v.替换(“;)”,“”) }); $(“#rte”).val(函数(i,v){ 返回v .替换(“:)”,“”) // ... .替换(;),”; }); 你可以为你所有的微笑提供一个字典,并在其中循环,从而使这段代码更具可扩展性: var smileDict = { happy: ':)
$(“#rte”).val(函数(i,v){
返回v.replace(':)',“”)
});
$(“#rte”).val(函数(i,v){
返回v.替换(“;)”,“”)
});
$(“#rte”).val(函数(i,v){
返回v
.替换(“:)”,“”)
// ...
.替换(;),”;
});
你可以为你所有的微笑提供一个字典,并在其中循环,从而使这段代码更具可扩展性:
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;
});
var smileDict={
快乐:“:)”,
眨眼:“;)”,
悲伤:':(',
酷:“B”
}
$('#rte').val(函数(i,v){
用于(smileDict中的var p){
if(smileDict.hasOwnProperty(p)){
v=v.替换(smileDict[p],'';
}
}
返回v;
});
编辑:要使此更新具有评论中要求的预览区域,请执行以下操作:
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);
var smileDict={
快乐:“:)”,
眨眼:“;)”,
悲伤:':(',
酷:“B”
};
var rteVal=$('#rte').val();
用于(smileDict中的var p){
if(smileDict.hasOwnProperty(p)){
rteVal=rteVal.replace(smileDict[p],“”);
}
}
$('#previewcontent').html(rteVal);
+1,mVchr。哇!这个解决方案比我想象的更优雅。谢谢“投票需要15个声望(点击此框即为辞退),”如何?。。。很抱歉问候。如果他最终合并了20个笑脸,那么实际上更容易维护的代码就更少了。@Jakub Hampl-但你应该关注代码的快乐程度:)再次感谢你。补充质询,我不想强调。。。如果我想创建一个预览区域(比如“预览”id),如何只替换预览区域中的图像而不替换文本区域中的图像?VincentStore将$('#rte').val()
存储到变量。更改(smileDict中的var p)的等,以影响该变量,而不是v
。然后将该变量插入preview.html(变量)
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;
});
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);