- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我目前正在使用一堆 jQuery 数组和条件语句来创建邮政编码搜索和重定向脚本。当用户输入邮政编码时,脚本将从数组中查找它,并将用户重定向到相应的页面。
// Portland
var mountain = ['97049', '97067', '97011'];
var east = ['97055', '97023', '97022', '97009', '97089'];
var southEast = ['97013', '97042', '97004', '97017', '97038'];
var i84Corridor = ['97019', '97014'];
var greshamNorthEast = ['97080', '97030', '97060', '97024', '97230', '97233', '97236', '97220', '97216', '97266', '97218', '97213', '97215', '97206', '97211', '97212', '97232', '97214', '97202', '97227', '97217', '97203'];
var southEastPdx = ['97222', '97267', '97015', '97086', '97045', '97027'];
var southWest = ['97002', '97137', '97071', '97032'];
var west = ['97114', '97127', '97115', '97132', '97111', '97148', '97128'];
var southWestPdx = ['97219', '97035', '97034', '97068', '97062', '97070', '97223', '97224', '97140'];
var northWestPdx = ['97204', '97205', '97209', '97201', '97210', '97221', '97239', '97231', '97229', '97225', '97005', '97008', '97006', '97007', '97051', '97053', '97056', '97109', '97133', '97124', '97106', '97116', '97125', '97119', '97123', '97113', '97018'];
var Wa = ['98671', '98607', '98675', '98604', '98606', '98682', '98684', '98683', '98662', '98664', '98686', '98665', '98663', '98660', '98685', '98661', '98642'];
$('#zipcodeSearch').submit(function(e){
e.preventDefault();
var root = location.protocol + '//' + location.host;
var searchedZip = $('#zip-code').val();
if(jQuery.inArray(searchedZip, mountain) > -1) {
window.location.href = root + '/mountain/';
} else if (jQuery.inArray(searchedZip, east) > -1) {
window.location.href = root + '/east/';
} else if (jQuery.inArray(searchedZip, southEast) > -1) {
window.location.href = root + '/southeast/';
} else if (jQuery.inArray(searchedZip, i84Corridor) > -1) {
window.location.href = root + '/i-84-corridor/';
} else if (jQuery.inArray(searchedZip, greshamNorthEast) > -1) {
window.location.href = root + '/gresham-northeast/';
} else if (jQuery.inArray(searchedZip, southEastPdx) > -1) {
window.location.href = root + '/southeast-of-portland/';
} else if (jQuery.inArray(searchedZip, southWest) > -1) {
window.location.href = root + '/southwest/';
} else if (jQuery.inArray(searchedZip, west) > -1) {
window.location.href = root + '/west/';
} else if (jQuery.inArray(searchedZip, southWestPdx) > -1) {
window.location.href = root + '/southwest-of-portland/';
} else if (jQuery.inArray(searchedZip, northWestPdx) > -1) {
window.location.href = root + '/northwest-of-portland/';
} else if (jQuery.inArray(searchedZip, Wa) > -1) {
window.location.href = root + '/wa/';
}
else {
window.location.href = root + '/service-areas/';
}
});
我的问题:是否有更好的方法来完成相同的功能,同时编写更少的代码?我仍在学习 jQuery,因此非常感谢您的所有意见。谢谢!
最佳答案
您可以将所有邮政编码存储在一个对象数组中,这些对象将它们的位置与代码联系起来。它可以这样格式化
var zips = [{ location: 'mountain', zipCodes: ['97049', '97067', '97011'] },
{ location: 'east', zipCodes: ['97055', '97023', '97022', '97009', '97089']}];
//one entry for each array you previously had...
然后在提交时你可以搜索你的数组并找到相应的位置
var root = location.protocol + '//' + location.host;
var searchedZip = $('#zip-code').val();
for(var i = 0; i < zips.length; i++){
if(zips[i].zipCodes.indexOf(searchedZip) > -1){
window.location.href = root + '/' + zips[i].location + '/';
break;
}
}
您可以更改 zips
中每个对象的 location
属性,以确保它具有正确的名称,例如 location: 'southwest-of-portaland'
而不是原始数组名称 southWestPdx
。
关于javascript - jQuery 邮政编码搜索和使用 inArray 重定向,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36360296/
我在这里做错了什么?我的想法是,我可以将箭头按键与其他任何按键分开,但每次按键都会触发警报“您按下了箭头键”。任何帮助都会很棒! jsFiddle此处或: $('#foo').keyup(func
我目前正在开发一个函数,该函数应该禁用 jQuery 日期选择器中的周末和节假日。 我的函数看起来像这样 function calendarDateDisabled(date) {
我有这个代码: var myRSS =[]; function rssReader() { $.getJSON('bbc.php', function(data){ conso
我正在尝试检查数组中是否存在“4”,因此我使用 inArray。尽管“4”确实存在,但它一直说“它不存在”。这是其中的一部分: var sp_20 = ["4"]; f
我想检查我的行 ID 是否在数组中。如果我为 myindex 设置一个固定值,它可以工作,但由于它低于它,它总是返回 FALSE 值。谢谢。 $('#stripeMeSubSubCat tr').ea
我正在使用 .inArray() 检查数组中是否有“0”值,然后返回 false; 或在存在零时中断该函数。 这是我当前使用的代码: $(document).ready(function() {
让我尽力解释一下我在这里所做的事情。然后问如何解决这个难题的最后一 block 。 我有一个图像列表,当单击该列表时,图像上的 ID 从父元素中获取,并将该 id 添加到名为 order[] 的数组中
我有一个现有表,我想防止将相同的数据添加到现有表中。 我的问题:为什么当我点击“创建新用户”按钮时,结果总是提示“未找到”? 代码如下:HTML: Existing Users:
我正在尝试使用带有 $.inArray 的循环。基本上,我有循环遍历的信息,我需要获取一部分信息并将其添加到数组中。如果该区域中已经存在该信息(有重复、三个相同、四个相同等,一直到相同数据的 12 个
我有一个功能只能输入数字,但我想扩展它,这样它就不会在箭头、退格键和删除键等键输入时触发。我将这些键码添加到数组中,并将 event.keyCode 传递给函数。 例如,退格键的键码是 8,即使它在我
如何检查我的数组中是否包含字符串?这是我将数组放在一起的方式... // get the select var $dd = $('#product-variants'); if ($dd.len
我有一个数组。 var arr =[23,45,78,89]; 我想从这个数组中删除 78,所以我正在使用 arr.splice($.inArray(78), 1); 但这总是删除最后一个元素 89
我有一个二维数组。例如 var bruecken = [[1,2],[3,4]]; 现在我正在尝试测试,如果一个子数组存在: console.log(jQuery.inArray([1,2], bru
我有一个这样的 json 文件: { items: [{ id: 1, catalog: { supplier: {
假设在 jQuery 中我将 DOM 元素放入一个数组中, var elemarray = []; elemarray.push($('#elem1')); elemarray.push($('#el
我需要一个 javascript 函数,它可以接受一个字符串和一个数组,如果该字符串在数组中则返回 true.. function inArray(str, arr){ ... } 警告:它
我不明白为什么当最后一个产品 ID 显然在数组中时,我的最后一个产品索引总是得到 -1! var lastProductID = 6758; var allProductIDs = [5410, 83
我正在尝试使用 inarray 但它总是返回 true?有任何想法吗? (所有 li 均已显示) $("#select-by-color-list li").hide(); // get the se
我有一个使用 JSON.parse 从字符串转换而来的数组: list = "625, 632"; list = JSON.parse("["+items_string+"]"); 其中包含
这个问题已经有答案了: Any way to make jQuery.inArray() case insensitive? (8 个回答) 已关闭 5 年前。 我有一个带有 JavaScript 的
我是一名优秀的程序员,十分优秀!