jQuery - 添加几个文本框

时间:2014-02-21 12:35:16

标签: javascript jquery

我正在使用此代码:

    jQuery.fn.update_textarea = function(test) { 
                $("#articles_textarea").html('');
                for (i=0;i<test;++i) { 
                    if (message[i]) { $("#articles_textarea").html('<textarea></textarea>'); }
                    else { message[i] = ''; $("#articles_textarea").html('<textarea></textarea>'); }
                }
            }

当我试图添加更多时,没有任何事情发生,但如果我添加1它的工作原理应该是..

这是“通话”代码

$("#articles_textarea").update_textarea(total);

这是总变量:

var total = parseFloat($(".testCounter").val()) + 5;

这只是为了调用一个textarea(有效的部分):

$("#articles_textarea").update_textarea(1);

当我打电话给一个盒子时,它正在工作,当我打电话给几个盒子时根本没有任何事情发生..

2 个答案:

答案 0 :(得分:1)

尝试使用append方法。 .html()将删除以前的内容

jQuery.fn.update_textarea = function(test) { 
            $("#articles_textarea").html('');
            for (i=0;i<test;++i) { 
                if (message[i]) { $("#articles_textarea").append('<textarea></textarea>'); }
                else { message[i] = ''; $("#articles_textarea").append('<textarea></textarea>'); }
            }
        }

答案 1 :(得分:0)

为什么你使用jQuery.fn,当你不使用它的功能,而它只适用于textareaarticles_textarea Id,你最好使用一个简单的功能像:

function update_textarea(test) { 
    $("#articles_textarea").html('');
    for (var i=0;i<test;++i) { 
        if (!message[i]){
            message[i] = '';
        }
        $("#articles_textarea").append('<textarea></textarea>');
    }
};

jQuery.fn添加新函数用于创建新的jQuery插件,请查看此link以获取更多信息。 另一点是你的for循环没有使用var i这不是一个好习惯。此外,除了message[i] = '';部分之外,你的if语句和else都是相同的。

顺便说一下,如果你想用jQuery.fn来做,最好这样做:

jQuery.fn.update_textarea = function(test) { 
    this.html('');
    for (var i=0;i<test;++i) { 
        if (!message[i]){
            message[i] = '';
        }
        this.append('<textarea></textarea>');
    }
};