我的选择是不更新:jQuery选择后动态添加新元素
$('section#attendance input:last')
不过,我附上另一个输入部分#出席。我想选择现在选择该元素(因为它应该的,因为:last
。然而,由于某些原因,它没有,我也不太清楚为什么
这里是我的全码:?
$('section#attendance input:last').keydown(function(e) {
if (e.which == 9)
{
var $this = $(this);
var num = parseInt($this.attr('name').match(/\d+(,\d+)?/)[0]) + 1;
$this.parent().append('<input type="text" name="attendance[' + num +']" value="Name and Position" class="medium" />');
}
});
新代码:
$("section#attendance").on("keydown", "input:last", function(e) {
if (e.which == 9) {
var $this = $(this);
var num = parseInt($this.attr('name').match(/\d+(,\d+)?/)[0]) + 1;
$this.after('<input type="text" name="attendance[' + num +']" value="Name and Position" class="medium" />');
}
});
编辑:这个问题似乎是在“输入:去年”,因为它的工作原理,如果我只用输入另外,如果我添加类“最后”的。最后一个元素,它在我使用'input.last'作为选择器时起作用
嘿,我试了一下,但由于某种原因,它似乎没有工作。我已经用新代码更新了我的帖子,并且已经查看了.on()的文档,但是我无法弄清楚什么是错误的。欢呼的帮助! – chintanparikh 2012-02-19 04:35:32
问题是您添加的输入标记没有您的代码所期望的正确类型的名称属性。您没有透露您的HTML,但是由于它从名称属性中解析出数字的方式,因此您的代码无法工作。你的正则表达式匹配两个数字之间的逗号,但你添加的新输入标签没有这种格式。你可以在这里看到一个更简单的版本:http://jsfiddle.net/jfriend00/uVHwK/。我们不得不看到你的HTML更具体的建议。 – jfriend00 2012-02-19 04:54:33