3

如果选择元素的选定值不包含“ALL”,我有一个 if 语句,我试图设置一个变量

这是我尝试过的代码,但它总是返回“%”...

if(!$("select.mySelect option:selected").filter(":contains('ALL')")) {
    selected_option = $("select.mySelect option:selected");
} else {
    selected_option = "%";
}

HTML

<select class="mySelect">
    <option value="ALLTYPE1">All type 1</option>
    <option value="CAR">Car</option>
    <option value="VAN">Van</option>
    <option value="ALLTYPE2">All type 2</option>
    <option value="PLANE">Plane</option>
    <option value="HELICOPTER">Helicopter</option>
</select>

有任何想法吗?

4

1 回答 1

3

你的if说法不正确。.filter()永远不会返回一个假值——它总是一个 jQuery 集合——它可以是空的,但永远不会是假的。要测试它返回的 jQuery 集合中有任何元素.filter(),请使用该.length属性。

利用:

if($("select.mySelect option:selected").filter(":contains('ALL')").length === 0) {
    ...

JSFiddle在这里:http: //jsfiddle.net/egEX8/

于 2013-08-15T10:16:38.527 回答