检查select是否包含特定值

时间:2013-09-11 18:55:13

标签: jquery selection

我有大约50个项目的选择,这里是一个小样本。 我想检查select是否包含特定的确切值,因此在寻找'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>

3 个答案:

答案 0 :(得分:5)

使用属性选择器:

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

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

答案 1 :(得分:0)

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

答案 2 :(得分: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>