我试图创建一个简单的邮政编码搜索。当输入值仅包含每个邮政编码的前两个字母时,我能够影响更改,如变量中所定义。
var AB = "AB";
var AL = "AL";
但是,如果输入完整的邮政编码,其中包含的字符数多于定义的变量,则不会进行任何更改。我如何构造变量,以便它们查找仅包含已定义字符的输入值。
答案 0 :(得分:0)
多个变量对于您尝试执行的操作而言是多余的,使用多维数组并循环遍历每个变量。解决方案[jsFiddle here
$('.find').click(function() {
var text = $("#distancePostcode").val().toLowerCase();
var PostCode = {
'AB': 'test1',
'AL': 'test2'
}
for (var key in PostCode) {
if (key.toLowerCase().indexOf(text) > -1) {
for (var key2 in PostCode) {
$('#' + PostCode[key2]).css("background", "");
}
$('#' + PostCode[key]).css("background", "red");
break;
}
}
});
.test {
margin: 10px 0px;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input type="text" placeholder="Postcode" id="distancePostcode"> <a class="find">find</a>
<div class="test" id="test1">test 1</div>
<div class="test" id="test2">test 2</div>
] 1