.remove()只删除innerHTML而不是像我想要的那样删除整个标记

时间:2012-06-29 18:15:17

标签: javascript jquery jquery-selectors

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

2 个答案:

答案 0 :(得分:5)

如果您希望删除liparentsUntil()的记录行为就是它不会触及li。你需要:

$(this).parentsUntil('li').parent().remove();

答案 1 :(得分:1)

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

您想改为呼叫.closest()