为什么不从<选择>元素中删除所有项目

Why doesn't this remove all of the items from the <select> element?

本文关键字:删除 项目 选择 为什么不 元素      更新时间:2023-09-26

我有一个函数,应该从onfocus事件的<select>中删除所有子元素。(接下来很快就会用 AJAX 调用中的值填充<select>)出于某种原因,它只在第一次被调用时删除其中一个元素,然后继续不执行所有后续调用。有没有人知道为什么会发生这种情况?

JS代码:

function handle(e) {
  for(var i = 0; i < e.children.length - 1; i++) {
    e.removeChild(e.children[i]);
  }
}

我猜handle()是你的onfocus事件处理程序。 在这种情况下,e 是您的事件对象,没有任何children属性

为什么不直接使用select.innerHTML = ""

因此,答案只是以相反的顺序删除它们,以避免与 VB.NET 列表类非常相似的索引系统的影响。 (也就是说,每次进行更改时,它都会重新组织自己。