我如何同时做到这两件事-从最后一行开始删除行,并能够在删除后添加行?我的问题是,当我从代码中删除.last()时,它会删除从第一行开始的,而不是从最后一行开始的。但是如果我添加.last(),在删除行之后就无法添加任何行。这里有一个页面链接,包含页面源代码和框架源代码。它真的很长,我不知道在这里要加多少。https://www.mturk.com/mturk/preview?groupId=330XZFCZ7R28BGIGI0U62D26WPATXS
$( document ).ready(function() {
$("#receipt_date").focus();
window.scrollTo(x-coord, y-coord);
});
$(document).keydown(function(f) {
if(f.which == 219) {
f.preventDefault();
//clicks an href link by its id
$('#add_item')[0].click();
}
else if (f.which==221){
f.preventDefault();
//clicks an href link by its class
$('a[class="delete_row"]').last()[0].click();
}
else if(f.which == 13) {
f.preventDefault();
//clicks a submit button not an href link
$('input[id="submit_button"]').trigger('click');
}
});
$('#add_item').first()
上的first()
是浪费时间,因为ID必须是唯一的,jQuery只能看到第一个匹配项(如果有重复项)。
在我看到HTML之前,这只是一个猜测,但如果你没有add_item
类的任何元素,那么下面代码中的[0]
将返回未定义,因此下面的click()
将崩溃,阻止页面上所有后续的JavaScript运行:
更改此项:
$('#add_item').first()[0].click();
到此:
$('#add_item').click();
如果元素不匹配/不存在,第二个版本jQuery将以静默方式失败。