2

我有一个大约 50 个项目的选择,这是一个小样本。我想检查选择是否包含特定的确切值,所以在寻找“美”时,那将是 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>
4

3 回答 3

5

使用属性选择器:

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

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

于 2013-09-11T18:55:58.727 回答
0
if($('#mydropdown').val() == "Beauty")
{
  //Do something
}
于 2013-09-11T18:58:12.017 回答
0

这是一个更快、更现代的解决方案,它不使用querySelectoror 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>

于 2020-05-05T13:11:11.137 回答