我有这个简单的代码,应该可以工作,但它不起作用。 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>
.
.
.
.
我在控制台中没有收到任何错误。
最佳答案
问题是您的选项值有一个尾随空格""
,因此它们与您的国家/地区
(没有尾随空格)不匹配。
"United States" != "United States "
注意:您可以通过添加断点并检查这两个值来轻松调试此问题。
<小时/>可能的解决方案:
- 在比较之前 trim
text()
结果(推荐) - 删除 HTML 中的空格(无论如何我也会这样做)
- 在
country
值中添加一个额外的空格(废话......但确实有效)
推荐解决方案
if($(this).text().trim() == country){
alert("found");
}
您可能需要检查 browser compatibility trim()
函数,以确保它符合您的要求。如果没有,那么您可能会找到 this post有一些兴趣。
关于javascript - 简单的 if 语句不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38874071/