javascript 如何删除基于 if else 的选择选项

标签 javascript jquery

您好,我编写了代码,如果 d 等于某个值,则删除 2 个选项值

var d = document.getElementById("random").value
if(d == "A600")
    $("#randomtype option[value='aosp'],#randomtype option[value='oneui']").remove();

即使d不等于A600,它也会将其删除。怎么会这样?

var d = document.getElementById("random").value
if (d == "A600")
  $("#randomtype option[value='aosp'],#randomtype option[value='oneui']").remove();
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.5.1/jquery.min.js"></script>

<select id="random" name="random">
  <option value="negative">Model</option>
  <option value="J710">J710X</option>
  <option value="J701">J701X</option>
  <option value="A320">A320X</option>
  <option value="G610">G610X</option>
  <option value="J600">J600X</option>
  <option value="A600">A600X</option>
  <option value="J737">J737X</option>
  <option value="M105">M105X</option>
</select>

<select id="randomtype" name="randomtype">
  <option value="negative">Variant</option>
  <option value="oneui">OneUI Non Treble</option>
  <option value="oneuit">OneUI Treble</option>
  <option value="aosp">AOSP Non treble</option>
  <option value="aospt">AOSP Treble</option>
</select>

现在它根本没有删除它,嗯

最佳答案

您需要检查 select 中的更改:

$('#random').on('change', function() {
  var d = document.getElementById("random").value
  var optionExists = ($("#randomtype option[value='oneui']").length > 0);

  if (this.value == "A600") {
    $("#randomtype option[value='oneui']").remove();
    $("#randomtype option[value='aosp']").remove();
  } else if (!optionExists) {
    $('#randomtype').append("<option value='oneui'>OneUI Non Treble</option>");
    $('#randomtype').append("<option value='aosp'>AOSP Non treble</option>");
  }
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.5.1/jquery.min.js"></script>

<select id="random" name="random">
  <option value="negative">Model</option>
  <option value="J710">J710X</option>
  <option value="J701">J701X</option>
  <option value="A320">A320X</option>
  <option value="G610">G610X</option>
  <option value="J600">J600X</option>
  <option value="A600">A600X</option>
  <option value="J737">J737X</option>
  <option value="M105">M105X</option>
</select>

<select id="randomtype" name="randomtype">
  <option value="negative">Variant</option>
  <option value="oneui">OneUI Non Treble</option>
  <option value="oneuit">OneUI Treble</option>
  <option value="aosp">AOSP Non treble</option>
  <option value="aospt">AOSP Treble</option>
</select>

关于javascript 如何删除基于 if else 的选择选项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62672117/

相关文章:

jQuery 点击事件之后

jquery - 动态创建的字段

javascript - Wordpress 菜单项不再显示当前页面样式

javascript - 如何在 reactstrap 中使用 onMouseEnter?

Javascript - 我如何停止执行

javascript - 水平下拉菜单 Umbraco

javascript - 单击标签时选中/取消选中 radio 输入

javascript - 如何设计分析解决方案(Django 堆栈)

javascript - 模态布局放在哪里以及如何用动态内容填充它

javascript - 如何签署需要 UniversalXPConnect 权限的脚本或网页