我有一个if语句,有超过100个不同的if.
在那一刻我使用类似的东西……
$('select').on("change",function(){ if( $(this).val() === 'tennis' ) { $('.sport').val('raquet'); } else if( $(this).val() === 'soccer' ) { $('.sport').val('goal'); } if( $(this).val() === 'snooker' ) { $('.sport').val('cue'); } });
我想在英国为县建立一个,所以如果用户在下拉列表中选择“london”,则下一个字段将填充伦敦的邮政编码.
然而,我的问题是,我可以像上面的例子一样构建它,只是它会很大.
是否可以使用某种xml文件来执行此操作?或者是否可以将每个县及其值放入数组中的对象并以此方式定位?
非常感谢任何帮助,谢谢
解决方法
通常的解决方案是将您的运动/对象存储为数据,因为它是数据.
var tbl = { tennis: 'raquet',snooker: 'cue',... };
然后使用这个简单的代码:
$('select').on("change",function(){ var t = tbl[$(this).val()]; if (typeof t === "string") $('.sport').val(t); });
您甚至可以从单独的JSON文件中获取tbl(或者只是将其存储在另一个JS文件中)以便于管理.
假设您要使用名为things.json的单独JSON文件,那么您的文件将如下所示:
{ "tennis": "raquet","snooker":"cue",... }
代码就是这样:
var httpRequest = new XMLHttpRequest(); httpRequest.onreadystatechange = function() { if (httpRequest.readyState === 4) { if (httpRequest.status === 200) { var tbl = JSON.parse(httpRequest.responseText); $('select').on("change",function(){ var t = tbl[$(this).val()]; if (typeof t === "string") $('.sport').val(t); }); } } }; httpRequest.open('GET','things.json?time='+Date.now()); httpRequest.send();