在jQuery中替换Text

时间:2013-05-14 17:01:10

标签: jquery replace

HTML:

<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');中显示替换?作为一个附带问题,可以进行哪些修改以使此代码更有效?

3 个答案:

答案 0 :(得分:1)

而不是:

return val.join('');

做:

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

答案 1 :(得分: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/

答案 2 :(得分:0)

只需添加$('#output')。html($('textarea')。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;

});