最新消息:雨落星辰是一个专注网站SEO优化、网站SEO诊断、搜索引擎研究、网络营销推广、网站策划运营及站长类的自媒体原创博客

javascript - jQuery - selected option value contains string - Stack Overflow

programmeradmin1浏览0评论

I have an if statement where I'm trying to set a variable if the selected value of a select element does not contain "ALL"

Here's the code I've tried, but it always returns "%"...

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>

Any ideas?

I have an if statement where I'm trying to set a variable if the selected value of a select element does not contain "ALL"

Here's the code I've tried, but it always returns "%"...

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>

Any ideas?

Share Improve this question asked Aug 15, 2013 at 10:11 TomTom 13k50 gold badges153 silver badges247 bronze badges 1
  • Please provide the corresponding HTML. – MCL Commented Aug 15, 2013 at 10:12
Add a ment  | 

1 Answer 1

Reset to default 3

Your if statement is incorrect. .filter() will never return a false value - it'll always be a jQuery collection - which can be empty, but never false. To test it there are any elements in the jQuery collection returned by .filter(), use the .length property.

Use:

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

JSFiddle here: http://jsfiddle/egEX8/

发布评论

评论列表(0)

  1. 暂无评论