检查select是否包含特定值

问题描述 投票:2回答:3

我有大约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>
jquery selection
3个回答
5
投票

使用属性选择器:

var hasBeauty = !! $('#mydropdown > option[value="Beauty"]').length;

这里是小提琴:http://jsfiddle.net/gLPJ5/


0
投票
if($('#mydropdown').val() == "Beauty")
{
  //Do something
}

0
投票

这是一种更快的现代解决方案,不使用querySelectorjQuery。它的作用是获取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>
© www.soinside.com 2019 - 2024. All rights reserved.