获取页面中的所有textarea并使用jquery替换它们的文本

时间:2013-12-30 13:16:15

标签: javascript jquery

我正在尝试获取页面中的所有textarea,并在按钮单击时用选定的textarea文本替换其文本。

$('.copyMsg').on('click', 'div',function(){
        var j=0;    
        var setText= $(this).parent().find('textarea').val();               
        $('.Cards textarea').each(function(i){
            $(this).text(setText);      
            console.log($(this).parent().attr('class'));
            j=i;
        });
        console.log(setText + ": "+j);
    }); 

问题发生的时候,如果我选择了第二个textarea,那么下面的所有textarea都会被取代而不是它上面。

3 个答案:

答案 0 :(得分:0)

请尝试使用此代码

$('.copyMsg').on('click',function(){        
    var setText= $(this).parent().find('textarea').val();   

    $('textarea').each(function(evt,val){
                   val.value = setText;                    
    });

});     

并找到您的更新小提琴http://jsfiddle.net/4y9wL/2/

答案 1 :(得分:0)

我的小提琴解决了你的问题!

以下是代码:

$('.copyMsg').each(function(){
    $(this).bind('click',function(){$('textarea').val($(this).prev().prev().val())});
});

My Updated Fiddle

如果发现有帮助,请将其标记为答案!

答案 2 :(得分:0)

我必须使用.val()来设置textarea值而不是.text,

$('div').on('click','.copyMsg',function(){
        var j=i=-1;     
        var setText= $(this).parent().find('textarea').val();               
        $('textarea').each(function(i){
            //$(this).text(setText);
            $(this).val(setText);       
            console.log($(this).prev());    
            j=i;        
        });     
        console.log(j);
    });