我的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');
}
});
我想在英国为县建立一个,所以如果用户在下拉列表中选择“伦敦”,则下一个字段将填充伦敦的邮政编码。
然而,我的问题是,我可以像上面的例子那样构建它,只有它会很大。
是否可以使用某种xml文件来执行此操作?或者是否可以将每个县及其值放入数组中的对象并以此方式定位?
非常感谢任何帮助,谢谢
答案 0 :(得分:24)
通常的解决方案是将您的运动/物体对存储为数据,因为是数据。
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();