如果法规不起作用,则很简单

时间:2016-08-10 12:55:25

标签: javascript jquery

我有这个简单的代码可以工作,但它不起作用。 if语句似乎永远不会成真。

JS:

$(document).ready(function(e) {
  var country = "United States";

  $.each($('select[name="country"]').children('option'), function(){
    if($(this).text() == country){
      alert("found");
    }else{
      console.log("Not found");
    }

  });

});

HTML:

<select name="country"  value="" >
  <option value="0" >Afghanistan </option>
  <option value="1" >Albania </option>
  <option value="2" >Algeria </option>
  <option value="3" >American Samoa </option>
  .
  .
  .
  .

我在控制台中没有错误。

JsFiddle

2 个答案:

答案 0 :(得分:3)

问题是您的选项值有一个尾随空格" ",因此它们与您的country(没有尾随空格)不匹配。

"United States" != "United States "

注意:您可以通过添加断点并检查两个值来轻松调试它。

可能的解决方案:

  1. 在比较之前修剪text()结果(推荐
  2. 从HTML中删除空格(我也会这样做)
  3. country值添加额外空格(废话......但确实有用)
  4. 推荐的解决方案

    if($(this).text().trim() == country){
        alert("found");
    }
    

    您可能需要检查trim()功能的browser compatibility,以确保其符合您的要求。如果没有,那么您可能会发现某些感兴趣的this post

答案 1 :(得分:2)

在if条件中使用trim功能

if($.trim($(this).text()) == country)