第二个removeChild不起作用?

时间:2016-02-10 01:25:21

标签: javascript dom

我不确定为什么第二个removeChild不起作用,两个DOM元素都具有相同的索引,但它只从partylist中删除它而不是新娘选择。我对JS更新,任何帮助都将不胜感激!

function removeOption() {
    var party = document.getElementById('partylist');
    var bride = document.getElementById('bride');
    var mem = party.options[party.selectedIndex];
    var obj1 = party.removeChild(party.options[party.selectedIndex]);
    var obj2 = bride.removeChild(bride.options[party.selectedIndex]);
}

1 个答案:

答案 0 :(得分:0)

party移除选项后,party.selectedIndex-1。由于所选选项不再存在,因此不会选择任何选项。您可以通过在删除语句之间添加console.log(party.selectedIndex)来验证这一点。

当然,

bride.options[-1]会返回undefined,因此bride不会删除任何内容。

最简单的解决方案是交换两个语句:

var obj2 = bride.removeChild(bride.options[party.selectedIndex]);
var obj1 = party.removeChild(party.options[party.selectedIndex]);

我强烈建议您学习how to debug JavaScript code,以便您可以自行解决此类问题。