Удаление одной и той же опции из двух блоков выбора одновременно

Как и в API 26, getDeviceId () обесценивается, поэтому вы можете использовать следующий код для поддержки API 26 и более ранних версий

TelephonyManager telephonyManager = (TelephonyManager)getSystemService(Context.TELEPHONY_SERVICE); String imei=""; if (android.os.Build.VERSION.SDK_INT >= 26) { imei=telephonyManager.getImei(); } else { imei=telephonyManager.getDeviceId(); }

Не забудьте добавить запрос на разрешение для «READ_PHONE_STATE», чтобы использовать выше код.

3
задан aliak 13 July 2018 в 20:18
поделиться

1 ответ

После того, как вы удалите значение из первого выбора, оно больше не будет выбрано, и, следовательно, выбранный индекс не будет существовать. Вам нужно заранее сохранить выбранный индекс в переменной перед удалением из обоих вариантов.

#addNode {
  margin-left: 20px;
  width: 20%;
  height: 20px;
  font-weight: bold;
}

#deleteNode {
  margin-right: 20px;
  width: 20%;
  height: 20px;
  font-weight: bold;
}

#txtInput {
  width: 50%;
  height: 10px;
  float: left;
  padding: 10px;
}

#srcNodes {
  width: 40%;
  font-family: courier new;
  padding: 10px;
}

#targetNodes {
  width: 40%;
  font-family: courier new;
  padding: 10px;
}
<textarea id="addNodeInput" placeholder="Node Name"></textarea>
<button id="addNode" onclick="addNode();">Add</button>
<button id="deleteNode" onclick="deleteNode();">Delete</button>
<div id="nodeConsole"></div>

<select id="srcNodes" size="8"> </select>
<select id="targetNodes" size="8"> </select>

<script>
  var cmd = "";

  var inNode = document.getElementById("addNodeInput");
  var out = document.getElementById("nodeConsole");

  function display() {
    out.value = "Node Operations";
    out.innerHTML = cmd + out.innerHTML;
    cmd = "";
  }

  function deleteNode() {
    var x =  document.getElementById("srcNodes");
    var y = document.getElementById("targetNodes");

    if (x.length > 0) {
     var selected =  x.selectedIndex;
      x.remove(selected);
      y.remove(selected);
    }
  }

  function addNode() {
    var n = inNode.value;
    cmd = ">>>" + n + "<br />";
    //display(cmd);
    inNode.value = "";
    inNode.focus();
    var s = document.getElementById("srcNodes");
    var t = document.getElementById("targetNodes");
    var option = document.createElement("option");
    var option2 = document.createElement("option");
    option2.text = n;
    t.add(option2);
    option.text = n;
    s.add(option);
  }
</script>

2
ответ дан hev1 17 August 2018 в 12:10
поделиться
Другие вопросы по тегам:

Похожие вопросы: