我的選擇是不更新: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