首页 > 解决方案 > 如何删除所有比调用函数的那个​​更大的“输入”元素?

问题描述

我正在尝试删除所有input元素,直到for loop重新找到触发该功能的元素。

问题,我可以使用 将remove其从 dom 中删除吗?第二个问题可以选择“类”以便我可以删除/删除它吗?他们都有相同的classname

我创建新的并将其INPUT插入IDARRAY

function child_input(element) {
  if (order_input.length-1 == 2) {
    alert("ritch lenght")
    return false;
  }
  if (order_input.length-1 >= 2) {
    alert("Fail!!")
  }
  element = document.createElement('input');
  element.type = "number";
  element.classList.add('dropNew');
  element.id = "input"+counter+"";
  element.onmouseleave = function mouseLeave() {
    if (element.value != "") {
      element.readOnly = true;
      element.classList.add('unWriteable');
      element.onmouseleave = false;
      child_input();
      element.addEventListener('dblclick', function() {
        element.classList.remove('unWriteable');
        element.readOnly = false;
        element.onmouseleave = function() {
          //hier würde ich immer den input(child) vorigen löschen...
          mouseLeave();
          removeChild_input(this.id);
        }
      });
    }
  }
  document.querySelector('.Main_Div').append(element);
  order_input.push(element);
  counter++;
}

可能知道有点难懂!!如果我现在dbclick是这四个之一input(例如第二个),我希望删除以下输入。(数字 4,3 必须删除)。

  //hold the oldest, and remove all child
    let delete_item = document.querySelector('#'+ id);
    let num_id = id.replace("input", " ");
    num_id = parseInt(num_id);

    for (var i = order_input.length-1; i >= num_id; i--) {
      order_input.slice(-1);
      order_input.pop();
      document.querySelector(".dropNew")[i].remove();
    }
    console.log(order_input.length-1);
}

标签: javascripthtmldom

解决方案


我不得不使用document.querySelectorAll('+class+')[i].remove()

整个功能..,
删除直到触发功能的输入。

for (var i = order_input.length-1; i >= num_id; i--) {
      order_input.slice(-1);
      order_input.pop();
      document.querySelectorAll(".dropNew")[i].remove();
    }

祝你们晚安。
感谢您的帮助。重新聚焦;)


推荐阅读