<option>

时间:2018-02-23 07:03:45

标签: javascript

我想在select中添加多个值,因此我可以精确地添加一个或几个项目。

示例:

<select id="select1">
<option value="pf, nn">NN</option>
<option value="pf, x2, jj">JJ</option>
<option value="pf, uu">UU</option>
<option value="pf, x2, oo">OO</option>
<option value="tt">TT</option>
<option value="rr">RR</option>
</select>

在我的js中,我得到了一个依赖于许多项常见的值的函数:

if (document.getElementById("select1").value = "pf";) {
// do something;
}
if (document.getElementById("select1").value = "x2";) {
// do some-other-thing;
}

但我不想使用(cos'和更多选项会变得混乱)

var sel1 = document.getElementById("select1").value
if (sel1="nn" || sel1="jj" || sel1="uu" || sel1="oo") {
// do something;
}
if (sel1="jj" || sel1="oo") {
// do some-other-thing;
}

Neverthelesst我需要能够通过精确的一个值来设置项目

if (document.somethingelse = true) {
document.getElementById("select1").value = "oo";)
}

有没有很好的方法来实现这一目标?也许使用一些其他“类似价值”的选项属性(但是哪个?)? 只有JS。

1 个答案:

答案 0 :(得分:0)

我认为您可以使用selectedOpt.value.split(",").includes("sth")代码执行您想要的操作:

&#13;
&#13;
$(document).ready(function(e){
    selectedChange($("#select1")[0])
});

function selectedChange(val) {
    var selectedOpt = val.options[val.selectedIndex];
    var status1 = selectedOpt.value.split(",").includes("x2");
    var status2 = selectedOpt.value.split(",").includes("pf");
    console.log(status1);
    console.log(status2);
}
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<select id="select1" onchange="selectedChange(this)">
<option value="pf,nn">NN</option>
<option value="pf,x2,jj">JJ</option>
<option value="pf,uu">UU</option>
<option value="pf,x2,oo">OO</option>
<option value="tt">TT</option>
<option value="rr">RR</option>
</select>
&#13;
&#13;
&#13;