简体   繁体   English

根据选择的选项显示/隐藏 div

[英]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 :(这是一个非工作小提琴:(

http://jsfiddle.net/HPMkL/ http://jsfiddle.net/HPMkL/

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()
})

Demo: Fiddle演示:小提琴

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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM