确定html select是否包含其任何子选项中的值

时间:2010-06-30 12:09:02

标签: jquery

给出选择

<select id="Myselect">
<option value="-1">Please Select<option>
<option value="1">Selection 1<option>
<option value="2">Selection 2<option>
</select>

使用JQuery确定select中是否存在值X选项的最佳方法是什么?

2 个答案:

答案 0 :(得分:31)

您可以使用选择器和.length执行此操作,如下所示:

var exists = $("#mySelect option[value='-1']").length !== 0;

或作为一项功能:

function optionExists(val) {
  return $("#mySelect option[value='" + val + "']").length !== 0;
}

如果不是数字而你可能在那里'(拧紧选择器),你可以使用.filter(),如下所示:

function optionExists(val) {
  return $("#mySelect option").filter(function() {
           return this.value === val;
         }).length !== 0;
}

答案 1 :(得分:5)

:has()选择器应该可以工作,如下所示:

var exists = $("#Myselect:has(option[value='X'])").length > 0;

这远非唯一的方法,而是一种易于理解的方法。 您也可以执行类似this for an .Exists()函数的操作,因为.length > 0有时并不清楚它是否存在。