2013-05-14 112 views
-3

HTML:jQuery中替換文本

<textarea></textarea><br /> 
<a href="#">Generate</a> 

<span id="output"></span> 

的jQuery:

$('textarea').bind('keypress', function(event) { 
    var charCode = event.which; 
    var keyChar = String.fromCharCode(charCode); 
    return /[a-zA-Z ]/.test(keyChar); 
}); 

var replacements = { 
    'a': '1', 
    'b': '2', 
    'c': '3' 
} 

$('a').click(function() { 
    $('textarea').val(function(i, val) { 
     val = val.split(''); 

     $.each(val, function(i, e) { 
      val[i] = replacements[e] ? replacements[e] : e; 
     }); 

     return val.join(''); 
    }); 
    return false; 
}); 

http://jsfiddle.net/sta75/


如何修改這個現有的代碼顯示在$('span#output');更換?作爲一個側面問題,可以做些什麼修改來使代碼更有效率?

回答

1

這裏是溶液顯示在#output替換:

$('textarea').bind('keypress', function(event) {  
    return /[a-zA-Z ]/.test(String.fromCharCode(event.which)); 
}); 

var replacements = { 
    'a': '1', 
    'b': '2', 
    'c': '3' 
} 

$('a').on('click', function(e) { 
    e.preventDefault(); 
    val = $('textarea').val().split('');  
    $.each(val, function(i, e) { 
     val[i] = replacements[e] ? replacements[e] : e; 
    }); 
    $('#output').html(val.join('')) ;  
}); 

http://jsfiddle.net/sta75/1/

1

而不是做的:

return val.join(''); 

進行如下操作:

$('span#output').html(val.join('')); 
0

只需添加$( '#輸出')HTML($( '文本區域')VAL());

$('a').click(function() { 
$('textarea').val(function(i, val) { 
    val = val.split(''); 

    $.each(val, function(i, e) { 
     val[i] = replacements[e] ? replacements[e] : e; 
    }); 

    return val.join(''); 
}); 
$('#output').html($('textarea').val()); //here 
return false; 

});