我有大约50种商品可供选择,这是一个小样本。我想检查选择是否包含特定的确切值,因此在查找“ Beauty”时,将是1个匹配项而不是2个。
我曾想遍历所有项目,但后来发现:http://api.jquery.com/is/
并认为效果可能会更好。但是,我不知道如何在此代码上使用它:
<select id="mydropdown" class="textbox">
<option value="Beauty">Beauty</option>
<option value="Catering">Catering</option>
<option value="Beautysalon">Beautysalon</option>
</select>
使用属性选择器:
var hasBeauty = !! $('#mydropdown > option[value="Beauty"]').length;
这里是小提琴:http://jsfiddle.net/gLPJ5/
if($('#mydropdown').val() == "Beauty")
{
//Do something
}
这是一种更快的现代解决方案,不使用querySelector
或jQuery
。它的作用是获取options
对象,将其转换为数组,然后使用includes
检查该值。所有方法都是本地JS API的一部分。
function optionExists (select, value) {
const options = Object.values(select.options).map(option => option.value)
return options.includes(value)
}
const select = document.getElementById('mydropdown')
console.log(optionExists(select, 'Beauty'))
console.log(optionExists(select, 'Be'))
<select id="mydropdown" class="textbox">
<option value="Beauty">Beauty</option>
<option value="Catering">Catering</option>
<option value="Beautysalon">Beautysalon</option>
</select>