[英]Show/hide divs based on option selected
I have a listen of car makes and car models.我听过汽车品牌和汽车型号。 When a user selects a certain car make, the relevant models appear in the next drop down.
当用户选择某个汽车品牌时,相关型号会出现在下一个下拉列表中。
These are some of options in the car make dropdown.这些是汽车制造下拉菜单中的一些选项。 It's a WordPress site so it has been assigned an id and value.
这是一个 WordPress 站点,因此已为其分配了 ID 和值。
<option id="level-0" value="29">Alfa Romeo</option>
<option id="level-0" value="73">Audi</option>
<option id="level-0" value="75">BMW</option>
<option id="level-0" value="31">Citroen</option>
<option id="level-0" value="78">Fiat</option>
Here is are options for the car model dropdown.这是汽车模型下拉菜单的选项。 I have given each option a unique id to link them to their respective car make.
我给每个选项一个唯一的 id,将它们链接到各自的汽车品牌。
<option id="cars-bmw" value="172">1 Series</option>
<option id="cars-bmw" value="173">2 Series</option>
<option id="cars-bmw" value="106">3 Series</option>
<option id="cars-audi" value="169">A1</option>
<option id="cars-audi" value="170">A3</option>
<option id="cars-audi" value="171">A4</option>
When the page loads, I have already defined the classes .cars-bmw and .cars-audi (etc) as style display: none当页面加载时,我已经将类 .cars-bmw 和 .cars-audi(等)定义为样式显示:无
I now have javascript to check which option in the first dropdown has been selected.我现在有 javascript 来检查已选择第一个下拉列表中的哪个选项。 From there it can determine which .car-make to display
从那里它可以确定要显示哪个 .car-make
Here is a non working fiddle :(这是一个非工作小提琴:(
You can't use ids like that since it has to be unique... try an data-*
attribute like您不能使用这样的 id,因为它必须是唯一的……尝试使用
data-*
属性,例如
<option id="level-0" data-make="cars-audi" value="73">Audi</option>
then in category然后在类别中
<option data-make="cars-audi" value="169">A1</option>
<option data-make="cars-audi" value="170">A3</option>
<option data-make="cars-audi" value="171">A4</option>
then然后
jQuery(function ($) {
var $cat = $('#cat'),
$models = $cat.find('option').slice(1).remove(),
$test = $('#test');
$test.change(function () {
$models.add($cat.find('option').slice(1).remove());
var $opts = $models.filter('[data-make="' + $(this).find('option:selected').data('make') + '"]');
$cat.append($opts)
}).change()
})
Try this.尝试这个。 I did some modification
我做了一些修改
$('#test').change(function(){
if(document.getElementById('test').value == "73") {
document.getElementById('cars-audi').style.display="inline";
}});
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.