我有一个动态创建的列表。应该可以使用删除按钮删除列表中的项目。然而,出于某种原因,它似乎只是删除innerHTML而不是整个标记innerHTML和所有,就像我也想要它一样。它可能与我正在使用的选择器有关,但我似乎无法弄明白。
这是代码。
提前致谢!
$('#courses').on('click', '.del', function() {
var tempIndex = $(this).parentsUntil('li').index();
reducePlanned(myListInfo[tempIndex-1].credits, myListInfo[tempIndex-1].gpa);
myListInfo.splice(tempIndex-1,1);
document.getElementById('hrs_planned').innerHTML = '<b>Hours: '+getStringHrs(planned_hrs)+' GPA: '+toStringGPA(planned_gpa)+'</b> ';
document.getElementById('header').innerHTML = 'Total Hours: '+getStringHrs(prev_hrs+planned_hrs)+' GPA: '+toStringGPA(((prev_hrs* prev_gpa)+(planned_hrs*planned_gpa))/(planned_hrs+prev_hrs));
$(this).parentsUntil('li').remove();
return false;
});
答案 0 :(得分:5)
如果您希望删除li
,parentsUntil()
的记录行为就是它不会触及li
。你需要:
$(this).parentsUntil('li').parent().remove();
答案 1 :(得分:1)
.parentsUntil()
不会返回与选择器匹配的元素。
您想改为呼叫.closest()
。