Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/375.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 对于我创建的每个文本区域,我希望它都有它的';个人字数';在上面。_Javascript_Jquery_Html - Fatal编程技术网

Javascript 对于我创建的每个文本区域,我希望它都有它的';个人字数';在上面。

Javascript 对于我创建的每个文本区域,我希望它都有它的';个人字数';在上面。,javascript,jquery,html,Javascript,Jquery,Html,下面的代码将在每次单击按钮时显示额外的2个文本框和1个文本区域 var x=1; var count=0; $('body').on('click','#add',function() { if(count < 6) { $('#div').append("<div class='line'><input type='text' name

下面的代码将在每次单击按钮时显示额外的2个文本框和1个文本区域

var x=1;
        var count=0;

        $('body').on('click','#add',function()
        {
            if(count < 6)
            {   
                $('#div').append("<div class='line'><input type='text' name = 'txta"+x+ "' id='txta"+ x +"'><span class =wordtab></span>      <textarea rows='9' onkeyup='countChar2(this)' cols='50' name = 'txtc"+x+ "' id='txtc"+ x +"'></textarea>   <span class =wordtab></span><input style = 'width:50px' type='text' name = 'txtb"+x+"' id='txtb"+ x +"'><span class =wordtab></span><button class='delete' value ='Delete Row'>Delete Row</button></div><div style='margin-left: 750px' id='charNum" + x + "'></div>");
                count++;
                x++;
            }
            else
            alert("Maximum 6 Skills");
        });

        $('body').on('click','.delete',function()
        {
        $(this).closest('.line').remove(); 

        count--;
        });

因此,我的目标是,每当我单击add行并开始在textarea上键入时,它都会在textarea框的正下方显示特定textarea的字数

要在每个textarea中添加一个唯一的计数器,您可以在textarea中附加另一个具有特定类的div,例如

将HTML结构设置为以下内容:

<textarea></textarea><div class='text-count-area'>Word Count: 0</div>
为了便于阅读,这里的字数保持简单,但是其他答案的逻辑(在注释中突出显示)可以在这个阶段实现


这项工作的JS Fiddle演示是。

要在每个textarea中添加一个唯一的计数器,您可以在textarea中附加另一个具有特定类的div,例如

将HTML结构设置为以下内容:

<textarea></textarea><div class='text-count-area'>Word Count: 0</div>
为了便于阅读,这里的字数保持简单,但是其他答案的逻辑(在注释中突出显示)可以在这个阶段实现

这项工作的JS Fiddle演示是。

让我们看看您的示例:

  • 通过
    .append
    方法添加每个div,这是正确的
  • 通过
    onkeyup
    事件对输入符号进行计数,这也是正确的
  • 您只需更新
    countChar2
    函数,因为该函数在该行中有错误的正文:

            var id = "charNum" + x;
            $(id).text((200 - len)+" words left");
    
  • 首先:试着在你最喜欢的浏览器中通过开发者工具调试你的代码。这一步可以提供比在stackoverflow中发布问题更快的信息:)

    对于
    onkeyup
    事件,您应该在函数中使用指向
    对象的链接,而不是
    id

                $(val).parent().find('.words-left').val((200 - len));
    
    此行使用
    val
    作为刚刚附加的行中的textarea对象的链接
    .parent()
    允许您访问包装器和
    find()
    查找单词左侧字段的输入。(我已将“.words left”类添加到您的输入中,请参见下面我的小提琴手的吼叫)。这段代码在您刚刚添加的行的阶段中起作用

    您的
    $('body')代码。当文档完全加载且DOM就绪时,应执行click()
    。但您将来将创建的所有ID都不会附加该DOM。这就是为什么delete函数工作正常-该函数使用
    类选择器
    而不是
    id

    由me提出的代码不使用
    id
    选择器,因为它不是必需的。我所需要的一切-链接到新行中的当前对象,
    val
    -我需要的是该操作

    顺便说一句:当您实现与对象一起工作的函数时,例如
    onkeyup='countChar2(this)
    ,使用
    object
    作为传递变量的更好方法是-
    var countChar=function(obj){
    。因为
    val
    以普通方式用于标量值

    您可以在此处查看我的代码

    让我们看看您的示例:

  • 通过
    .append
    方法添加每个div,这是正确的
  • 通过
    onkeyup
    事件对输入符号进行计数,这也是正确的
  • 您只需更新
    countChar2
    函数,因为该函数在该行中有错误的正文:

            var id = "charNum" + x;
            $(id).text((200 - len)+" words left");
    
  • 首先:尝试在您喜爱的浏览器中通过开发人员工具调试代码,并在该行中加上分隔符。与在stackoverflow中发布问题相比,此步骤可以更快地为您提供更多信息:)

    对于
    onkeyup
    事件,您应该在函数中使用指向
    对象的链接,而不是
    id

                $(val).parent().find('.words-left').val((200 - len));
    
    这一行使用
    val
    作为刚刚添加的行中textarea对象的链接。
    .parent()
    允许您访问包装器和
    find()
    查找单词左侧字段的输入。(我已将“.words left”类添加到您的输入中,请参见下面的fiddler命令)。这段代码在刚刚添加的行的阶段工作

    您的
    $('body')代码。当文档已完全加载且DOM就绪时,应执行click()
    。但您将来将创建的所有id都不会附加该DOM。这就是删除函数正常工作的原因-该函数使用
    类选择器而不是
    id

    由me提议的代码不使用
    id
    选择器,因为它是不需要的。我所需要的一切-链接到新行中的当前对象,
    val
    -我需要该操作

    顺便说一句:当您实现与对象一起工作的函数时,例如
    onkeyup='countChar2(this)
    ,使用
    object
    作为传递变量的更好方法是-
    var countChar=function(obj){
    。因为
    val
    以普通方式用于标量值


    你可以在这里检查我的代码

    ,或者为什么你的代码不起作用?有什么问题?@RC。我的字数可以工作,但idk如何附加它,使每个@DavidH都有一个单独的ID。问题是,字数的ID必须是唯一的,但我不知道如何使它唯一。我尝试使用我的x变量,但不知道如何w应用它,或者为什么你的代码不工作?有什么问题吗?@RC。我的字数可以工作,但idk如何附加它,使每个@DavidH都有一个单独的ID。问题是字数的ID必须是唯一的,但我不知道如何使它唯一。我尝试使用我的x变量,但不知道如何应用它