Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/76.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_Html_Forms - Fatal编程技术网

记录使用JavaScript动态添加文本字段的次数

记录使用JavaScript动态添加文本字段的次数,javascript,html,forms,Javascript,Html,Forms,我正在尝试使用JavaScript在单击链接时动态地将新文本字段添加到HTML表单中。每次单击链接,都会在我的表单中插入一个新的文本字段。以下是我执行此事件的代码: HTML 现在,我想要一种方法来记录链接被点击的次数,因为我想按名称区分每个文本字段,如下所示: celeb.name = "handle" + count 其中,第一次单击链接时,count将为1,因此其对应的文本字段命名为handle1。对于其他文本字段也是如此;在第一个字段之后添加的文本字段将命名为handle2,依此类推

我正在尝试使用JavaScript在单击链接时动态地将新文本字段添加到HTML表单中。每次单击链接,都会在我的表单中插入一个新的文本字段。以下是我执行此事件的代码:

HTML

现在,我想要一种方法来记录链接被点击的次数,因为我想按名称区分每个文本字段,如下所示:

celeb.name = "handle" + count
其中,第一次单击链接时,
count
将为
1
,因此其对应的文本字段命名为
handle1
。对于其他文本字段也是如此;在第一个字段之后添加的文本字段将命名为
handle2
,依此类推


如何在我当前的JavaScript代码中实现这一点?如果有人能为此提供非JQuery解决方案,我将不胜感激。谢谢。

定义一个全局计数器,同时调用递增计数器

<script>
  function addNewCeleb(){
     var celeb = document.createElement("input");
     var container = document.getElementById('celebrity');
     var lastNode = container.childNodes[container.childNodes.length-1] ;
     var count = lastNode && lastNode.nodeName.toLowerCase() === 'input' ? parseInt(lastNode.name.replace('handle',''))+1 : 1;
     celeb.type = "text";
     celeb.name = "handle"+count;
     celeb.placeholder = "Twitter handle";
     container.appendChild(celeb);
  }
</script>

<body>
  <a onclick = "addNewCeleb()">Add a Microceleb</a>
  <div id = "celebrity"/>
</body>

函数addNewCeleb(){
var celeb=document.createElement(“输入”);
var container=document.getElementById('名人');
var lastNode=container.childNodes[container.childNodes.length-1];
var count=lastNode&&lastNode.nodeName.toLowerCase()=='input'?parseInt(lastNode.name.replace('handle','')+1:1;
celeb.type=“text”;
celeb.name=“handle”+计数;
celeb.placeholder=“Twitter句柄”;
容器。附属物(名人);
}
添加一个微单元

定义一个全局计数器,同时调用递增计数器

<script>
  function addNewCeleb(){
     var celeb = document.createElement("input");
     var container = document.getElementById('celebrity');
     var lastNode = container.childNodes[container.childNodes.length-1] ;
     var count = lastNode && lastNode.nodeName.toLowerCase() === 'input' ? parseInt(lastNode.name.replace('handle',''))+1 : 1;
     celeb.type = "text";
     celeb.name = "handle"+count;
     celeb.placeholder = "Twitter handle";
     container.appendChild(celeb);
  }
</script>

<body>
  <a onclick = "addNewCeleb()">Add a Microceleb</a>
  <div id = "celebrity"/>
</body>

函数addNewCeleb(){
var celeb=document.createElement(“输入”);
var container=document.getElementById('名人');
var lastNode=container.childNodes[container.childNodes.length-1];
var count=lastNode&&lastNode.nodeName.toLowerCase()=='input'?parseInt(lastNode.name.replace('handle','')+1:1;
celeb.type=“text”;
celeb.name=“handle”+计数;
celeb.placeholder=“Twitter句柄”;
容器。附属物(名人);
}
添加一个微单元

定义一个全局计数器,同时调用递增计数器

<script>
  function addNewCeleb(){
     var celeb = document.createElement("input");
     var container = document.getElementById('celebrity');
     var lastNode = container.childNodes[container.childNodes.length-1] ;
     var count = lastNode && lastNode.nodeName.toLowerCase() === 'input' ? parseInt(lastNode.name.replace('handle',''))+1 : 1;
     celeb.type = "text";
     celeb.name = "handle"+count;
     celeb.placeholder = "Twitter handle";
     container.appendChild(celeb);
  }
</script>

<body>
  <a onclick = "addNewCeleb()">Add a Microceleb</a>
  <div id = "celebrity"/>
</body>

函数addNewCeleb(){
var celeb=document.createElement(“输入”);
var container=document.getElementById('名人');
var lastNode=container.childNodes[container.childNodes.length-1];
var count=lastNode&&lastNode.nodeName.toLowerCase()=='input'?parseInt(lastNode.name.replace('handle','')+1:1;
celeb.type=“text”;
celeb.name=“handle”+计数;
celeb.placeholder=“Twitter句柄”;
容器。附属物(名人);
}
添加一个微单元

定义一个全局计数器,同时调用递增计数器

<script>
  function addNewCeleb(){
     var celeb = document.createElement("input");
     var container = document.getElementById('celebrity');
     var lastNode = container.childNodes[container.childNodes.length-1] ;
     var count = lastNode && lastNode.nodeName.toLowerCase() === 'input' ? parseInt(lastNode.name.replace('handle',''))+1 : 1;
     celeb.type = "text";
     celeb.name = "handle"+count;
     celeb.placeholder = "Twitter handle";
     container.appendChild(celeb);
  }
</script>

<body>
  <a onclick = "addNewCeleb()">Add a Microceleb</a>
  <div id = "celebrity"/>
</body>

函数addNewCeleb(){
var celeb=document.createElement(“输入”);
var container=document.getElementById('名人');
var lastNode=container.childNodes[container.childNodes.length-1];
var count=lastNode&&lastNode.nodeName.toLowerCase()=='input'?parseInt(lastNode.name.replace('handle','')+1:1;
celeb.type=“text”;
celeb.name=“handle”+计数;
celeb.placeholder=“Twitter句柄”;
容器。附属物(名人);
}
添加一个微单元

最简单的解决方案是在全局范围内创建一个变量,并在每次追加一个新的文本字段时递增它,如下所示

var index = 0;   
 function addNewCeleb()
            {
                    index += 1;
                    var celeb = document.createElement("input");
                    celeb.type = "text";
                    celeb.name = "handle" + index;
                    celeb.placeholder = "Twitter handle";
                    celebrity.appendChild(celeb);
            }

争论全局范围不是一个很好的实践是javascript,但是这可能是最简单的修复方法。替代方法是创建一个闭包。

最简单的解决方案是在全局范围内创建一个变量,并在每次添加这样的新文本字段时递增它

var index = 0;   
 function addNewCeleb()
            {
                    index += 1;
                    var celeb = document.createElement("input");
                    celeb.type = "text";
                    celeb.name = "handle" + index;
                    celeb.placeholder = "Twitter handle";
                    celebrity.appendChild(celeb);
            }

争论全局范围不是一个很好的实践是javascript,但是这可能是最简单的修复方法。替代方法是创建一个闭包。

最简单的解决方案是在全局范围内创建一个变量,并在每次添加这样的新文本字段时递增它

var index = 0;   
 function addNewCeleb()
            {
                    index += 1;
                    var celeb = document.createElement("input");
                    celeb.type = "text";
                    celeb.name = "handle" + index;
                    celeb.placeholder = "Twitter handle";
                    celebrity.appendChild(celeb);
            }

争论全局范围不是一个很好的实践是javascript,但是这可能是最简单的修复方法。替代方法是创建一个闭包。

最简单的解决方案是在全局范围内创建一个变量,并在每次添加这样的新文本字段时递增它

var index = 0;   
 function addNewCeleb()
            {
                    index += 1;
                    var celeb = document.createElement("input");
                    celeb.type = "text";
                    celeb.name = "handle" + index;
                    celeb.placeholder = "Twitter handle";
                    celebrity.appendChild(celeb);
            }

争论全局作用域不是一个很好的实践是javascript,但是这可能是最简单的修复方法。替代方法是创建一个闭包。

您可以向创建的元素添加一个类,并计算具有该自定义类的元素数

代码应该是

function addNewCeleb()
{

        var celeb = document.createElement("input");
        var celebrity = document.getElementById("celebrity");
        var count = document.querySelectorAll('.specific-class').length;
        celeb.type = "text";
        celeb.name = "handle" + count;
        celeb.class = "specific-class"
        celeb.placeholder = "Twitter handle";
        celebrity.appendChild(celeb);
}

您可以向创建的元素添加一个类,并计算具有该自定义类的元素数

代码应该是

function addNewCeleb()
{

        var celeb = document.createElement("input");
        var celebrity = document.getElementById("celebrity");
        var count = document.querySelectorAll('.specific-class').length;
        celeb.type = "text";
        celeb.name = "handle" + count;
        celeb.class = "specific-class"
        celeb.placeholder = "Twitter handle";
        celebrity.appendChild(celeb);
}

您可以向创建的元素添加一个类,并计算具有该自定义类的元素数

代码应该是

function addNewCeleb()
{

        var celeb = document.createElement("input");
        var celebrity = document.getElementById("celebrity");
        var count = document.querySelectorAll('.specific-class').length;
        celeb.type = "text";
        celeb.name = "handle" + count;
        celeb.class = "specific-class"
        celeb.placeholder = "Twitter handle";
        celebrity.appendChild(celeb);
}

您可以向创建的元素添加一个类,并计算具有该自定义类的元素数

代码应该是

function addNewCeleb()
{

        var celeb = document.createElement("input");
        var celebrity = document.getElementById("celebrity");
        var count = document.querySelectorAll('.specific-class').length;
        celeb.type = "text";
        celeb.name = "handle" + count;
        celeb.class = "specific-class"
        celeb.placeholder = "Twitter handle";
        celebrity.appendChild(celeb);
}

保持增量变量的作用域被包含比使用全局变量更好,我建议如下:

var addNewCeleb = function() {
  var count = 0;

  return function() {
    count++;
    var celeb = document.createElement("input");
    celeb.type = "text";
    celeb.name = "handle"+count;
    celeb.placeholder = "Twitter handle";
    document.getElementById('celebrity').appendChild(celeb);
  }
}();

保持增量变量的作用域被包含比使用全局变量要好,我建议如下:

var addNewCeleb = function() {
  var count = 0;

  return function() {
    count++;
    var celeb = document.createElement("input");
    celeb.type = "text";
    celeb.name = "handle"+count;
    celeb.placeholder = "Twitter handle";
    document.getElementById('celebrity').appendChild(celeb);
  }
}();

保持增量变量的作用域被包含比使用全局变量要好,我建议如下:

var addNewCeleb = function() {
  var count = 0;

  return function() {
    count++;
    var celeb = document.createElement("input");
    celeb.type = "text";
    celeb.name = "handle"+count;
    celeb.placeholder = "Twitter handle";
    document.getElementById('celebrity').appendChild(celeb);
  }
}();

保持增量变量的作用域被包含比使用全局变量要好,我建议如下:

var addNewCeleb = function() {
  var count = 0;

  return function() {
    count++;
    var celeb = document.createElement("input");
    celeb.type = "text";
    celeb.name = "handle"+count;
    celeb.placeholder = "Twitter handle";
    document.getElementById('celebrity').appendChild(celeb);
  }
}();

如果这对您有效,请尝试

<a onclick = "addNewCeleb()">Add a Microceleb</a>
<div id = "celebrity"/>

    function addNewText()
                {
         var index=0;
         return  function(){ 
                        index += 1;
                        var celeb = document.createElement("input");
                        celeb.type = "text";
                        celeb.name = "handle" + index;
                        celeb.placeholder = "Twitter handle";
                        celebrity.appendChild(celeb);
                      }
          }
    var addNewCeleb= new addNewText();
添加一个Microceleb
函数addNewText()
{
var指数=0;
返回函数(){
指数+=1;
var celeb=document.createElement(“输入”);
celeb.type=“text”;
celeb.name=“handle”+索引;
celeb.placeholder=“Twitter句柄