如何为文本字段生成动态名称和ID

时间:2013-08-13 08:32:15

标签: javascript jquery html

我有一个JavaScript函数,用于在单击上一个文本字段时动态生成文本字段。

HTML

<input class="incfield" type="text" name="textfield" />

的JavaScript

$(function () {
var createNewField = function () {
    var $node = $('<input class="incfield" type="text" name="textfield");

    $node.one('click', createNewField);
    $(this).after($node);

}
    };

$('input.incfield').one('click', createNewField);

});

该功能正常运行,但我希望文本字段应包含动态生成的idname标记。

例如:对于第一个文本字段id = t1 t2,...等

我该怎么做?

3 个答案:

答案 0 :(得分:3)

 $(function () {
    var cnt= 0;
    var createNewField = function () {
    var $node = $('<input class="incfield'+cnt+'" type="text" name="textfield'+cnt+'"/>');

        $node.one('click', createNewField);
        $(this).after($node);
    cnt++;
    }
 };

这将创建一个动态名称和id“incfield0”和“textfield0”

答案 1 :(得分:0)

你可以尝试这样的事情:

$(function () {
  var createNewField = function () {
      var $node = $('<input class="incfield" type="text" name="textfield">');

      var n = $('input.incfield').length;

      $node[0].id = "t" + n;
      $node[0].name = "t" + n;

      $node.one('click', createNewField);
      $(this).after($node);

  }

  $('input.incfield').one('click', createNewField);
}); 

答案 2 :(得分:0)

您可以尝试这样:

var createNewField = function () {
 var n = $("input.incfield:text").length+1;
    var $node = $('<input class="incfield" id='+n+' type="text" name="textfield">');

    $node.one('click', createNewField);
    $(this).after($node);

}