javascript - 从数组中填充 li 元素,删除重复项并添加值(如果选中):false (on/off button)

标签 javascript jquery nodelist

结果是每次我调用这个函数时我的列表都会变得更大。我知道我非常接近解决我的问题,但这些天我真的很紧张。任何帮助或评论将不胜感激。

function devicesoff() {
var devices = document.querySelectorAll("[id^='device_']");

for (var i = 0; i < devices.length; i++) {

    if (devices[i].checked === false) {

        var ele = devices[i].name;

        var para = document.getElementById("p");
        var list = document.createElement("li");


        var t = document.createTextNode(ele + "\n");

        list.appendChild(t);
        para.appendChild(list);

    }

}

最佳答案

首先清除旧设备,然后添加新设备。

function devicesOff() {
  var devices = document.querySelectorAll("[id^='device_']");
  var para = document.getElementById("p");
  para.innerHTML = ""; // clear old devices first

  // add new ones
  for (var i = 0; i < devices.length; i++) {
    if (devices[i].checked === false) {
      var ele = devices[i].name;
      var list = document.createElement("li");

      var t = document.createTextNode(ele + "\n");
      list.appendChild(t);
      para.appendChild(list);
    }

  }
}
<input type="checkbox" id="device_1" name="device_1" />
<input type="checkbox" id="device_2" name="device_2" />
<input type="checkbox" id="device_3" name="device_3" />

<input type="button" value="devicesOff" onclick="devicesOff()" />

<ul id="p">

</ul>

关于javascript - 从数组中填充 li 元素,删除重复项并添加值(如果选中):false (on/off button),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38815146/

相关文章:

javascript - 遍历 json 以检查某些数据是否存在(如果不显示)不使用 ngFor 和 ngIf

javascript - Javascript/jQuery 中的缩放图像效果插件

php - 使用 PHP Includes 时的淡入淡出过渡

jquery - 我应该为客户可能使用的所有不同浏览器编写 jquery 吗?

javascript - 如何创建 NodeList?

javascript - 在 React 中定义空 dom 元素的正确方法

javascript - Jquery搜索不是一个函数

java - XPath NodeList 命令 (Java)

xml - xPath 检索多个值

javascript - 防止特定的默认操作