0

我正在开发一款游戏,并且有一个表单输入,用户可以在其中输入字符数。一旦发生这种情况,每个角色的名字就会出现更多的输入。我现在的问题是将这些名称读入一个数组。

当创建新输入时,还会创建一个名为 nameButton 的新按钮,这是我的问题,当我尝试单击时,当值应该存储在数组中时没有任何反应。我在函数末尾放了一个提示,只是为了检查,甚至没有被调用。

如果大家有任何建议,请告诉我这里是jsFiddle

    function nameRecording(names,$this){
    var addRows='<tr id=newRows>';
    for(var i =1; i<=names; i++)
    { var nearTr=$this.closest('tr');
            addRows=addRows+'<td>Name one:</td><td><form><input type="text" name="charcItem" class = "newR"/></form></td>';
    }
    addRows=addRows+'<td><div class="button" id="nameButton"> Add! </div></td></tr>';
    nearTr.after(addRows);
};    
$('#nameButton').click(function(){
    names=$(".newR").map(function(){
        return $(this).val();
    });
    prompt(names);
});

还有我的一些功能。

4

1 回答 1

2

试试这个方法:

$(".form").on('click', '#nameButton', function () {
    names = $(".newR").map(function () {
        return this.value;
    }).get();
    prompt(names);
});
  • 您可以将事件委托使用 on 用于动态元素
  • 您需要执行.get()结果.map()以将集合对象转换为数组。

演示

于 2013-07-11T02:19:17.290 回答