我使用jQuery创建了一个选择框。这是我的小提琴:http://jsfiddle.net/andreaszeike/gff1r5dr/3/
它的工作正常,但是你可以帮我简写代码:
$(document).ready(function () {
$('#link-button a ').attr("href", "http://test/")
});
$('select[name=model]').change(function () {
//keine Auswahl
if ($(this).val() == '') {
$(document).ready(function () {
$('#link-button a ').attr("href", "http://test/")
});
} else
//alfa-Romeo
if ($(this).val() == 'ar-1') {
$(document).ready(function () {
$('#link-button a ').attr("href", "http://test/alfa-romeo/giulietta/")
});
} else
if ($(this).val() == 'ar-2') {
$(document).ready(function () {
$('#link-button a ').attr("href", "http://test/alfa-romeo/mito/")
});
} else
if ($(this).val() == 'ar-3') {
$(document).ready(function () {
$('#link-button a ').attr("href", "http://test/alfa-romeo/spider/")
});
} else
//Alpina
if ($(this).val() == 'alp-1') {
$(document).ready(function () {
$('#link-button a ').attr("href", "http://test/alpina/alpina-b3/")
});
} else
if ($(this).val() == 'alp-2') {
$(document).ready(function () {
$('#link-button a ').attr("href", "http://test/alpina/alpina-b5/")
});
} else
if ($(this).val() == 'alp-3') {
$(document).ready(function () {
$('#link-button a ').attr("href", "http://test/alpina/alpina-b10/")
});
} else
if ($(this).val() == 'alp-4') {
$(document).ready(function () {
$('#link-button a ').attr("href", "http://test/alpina/alpina-rs/")
});
} else {}
});
我找到了一些例子(https://www.sitepoint.com/jquery-each-function-examples/),但我没有设法将它转移到我的示例喷气机上。
答案 0 :(得分:0)
您可以使用switch语句
$('select[name=model]').change(function () {
var valuee = $(this).val();
$(document).ready(function () {
switch(valuee)
{
case '':
$('#link-button a ').attr("href", "http://test/");
break;
case 'ar-1':
$('#link-button a ').attr("href", "http://test/alfa-romeo/giulietta/");
break;
case 'ar-2':
$('#link-button a ').attr("href", "http://test/alfa-romeo/mito/");
break;
case 'ar-3':
$('#link-button a ').attr("href", "http://test/alfa-romeo/spider/")
break;
case 'alp-1':
$('#link-button a ').attr("href", "http://test/alpina/alpina-b3/")
break;
case 'alp-2':
$('#link-button a ').attr("href", "http://test/alpina/alpina-b5/")
break;
case 'alp-3':
$('#link-button a ').attr("href", "http://test/alpina/alpina-b10/")
break;
case 'alp-4':
$('#link-button a ').attr("href", "http://test/alpina/alpina-rs/")
break;
default :
$('#link-button a ').attr("href", "http://test/");
break;
}
});
});
答案 1 :(得分:0)
创建一个键值对象数组,如下所示:
$(document).ready(function () {
$('#link-button a ').attr("href", "http://test/")
});
nameUrlArray = [
{
key: ''
value: ''
},
{
key: 'ar-1'
value: 'alfa-romeo/giulietta/'
},
{
key: 'ar-2'
value: 'alfa-romeo/mito/'
},
{
key: 'ar-3'
value: 'alfa-romeo/spider/'
},
{
key: 'alp-1'
value: 'alpina/alpina-b3/'
},
{
key: 'alp-2'
value: 'alpina/alpina-b5/'
},
{
key: 'alp-3'
value: 'alpina/alpina-b10/'
},
{
key: 'alp-4'
value: 'alpina/alpina-rs/'
}
]
$('select[name=model]').change(function () {
$(document).ready(function () {
$('#link-button a ').attr("href", "http://test/" + nameUrlArray.find(element => element.key == $(this).val()).value
});
});
我现在无法测试它,但这应该可以解决问题。你只需要有一个数组的对象来添加一个新的" if"并简化了很多代码
答案 2 :(得分:0)
您只需要$(document).ready()
一次。在此方案中使用switch case而不是if else
。为URL,jQuery对象等声明变量,并重用它。
$(document).ready(function() {
var $linkBtn = $('#link-button a ');
$linkBtn.attr("href", "http://test/")
$('select[name=model]').change(function() {
var sel = $(this).val(),
url = '';
switch (sel) {
//alfa-Romeo
case 'ar-1':
url = 'http://test/alfa-romeo/giulietta/';
break;
case 'ar-2':
url = 'http://test/alfa-romeo/mito/';
break;
case 'ar-3':
url = 'http://test/alfa-romeo/spider/';
break;
case 'alp-1':
url = 'http://test/alpina/alpina-b3/';
break;
case 'alp-2':
url = 'http://test/alpina/alpina-b5/';
break;
case 'alp-3':
url = 'http://test/alpina/alpina-b10/';
break;
case 'alp-4':
url = '"http://test/alpina/alpina-rs/';
break;
default:
//keine Auswahl
url = 'http: //test/';
}
$linkBtn.attr("href", url);
});
});