我有这个简单的代码可以工作,但它不起作用。 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>
.
.
.
.
我在控制台中没有错误。
答案 0 :(得分:3)
问题是您的选项值有一个尾随空格" "
,因此它们与您的country
(没有尾随空格)不匹配。
"United States" != "United States "
注意:您可以通过添加断点并检查两个值来轻松调试它。
可能的解决方案:
text()
结果(推荐)country
值添加额外空格(废话......但确实有用)推荐的解决方案
if($(this).text().trim() == country){
alert("found");
}
您可能需要检查trim()
功能的browser compatibility,以确保其符合您的要求。如果没有,那么您可能会发现某些感兴趣的this post。
答案 1 :(得分:2)
在if条件中使用trim功能
if($.trim($(this).text()) == country)