4

我有一个动态创建的列表。列表中的项目应该可以使用删除按钮删除。然而,出于某种原因,它似乎只是删除了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;
});
4

2 回答 2

5

如果您希望它删除li,则记录在案的行为parentsUntil()是它不会触及li. 你需要:

$(this).parentsUntil('li').parent().remove();
于 2012-06-29T18:20:46.350 回答
1

.parentsUntil()不返回匹配选择器的元素。

你想打电话.closest()

于 2012-06-29T18:25:55.840 回答