如何修改代码以将其应用于三个下拉菜单? (Jquery的)

时间:2016-04-15 03:18:41

标签: javascript jquery html drop-down-menu

我有一个jquery代码,它根据之前选择的下拉值来更改。 当我有两个下拉菜单并且它完美无缺时,我会使用它。

现在问题是我正在处理3个下拉菜单,我无法根据3个下拉列表修改代码(因为我是jquery的新手)。

这是代码:

Jquery的:

jQuery(function(){
var $cat = $('select[name=coursename]'),
    $items = $('select[name=semno]');

    $cat.change(function(){
    var $this = $(this).find(':selected'),
        rel = $this.attr('rel'),
        $set = $items.find('option.' + rel);

    if ($set.size() < 0) {
        $items.hide();
        return;
    }

    $items.show().find('option').hide();

    $set.show().first().prop('selected', true);});});

我使用了两个下拉菜单, coursename semno ,使用此代码,它完全正常。

现在我想在 semno 之后添加另一个下拉列表 subnm 。 所以我真正想要的是,当一个人在 coursename 中进行特定选择时,相关项目应出现在 semno 中以及相关项目中,当选择一个值时,项目列在 subnm 上。

我在选项元素中使用了rel和class。

HTML代码

Course: 
<select name="coursename" id="coursename">
<option value="xyz" rel="xyz">XYZ</option>
<option value="abc" rel="abc">ABC</option>
</select>

Semester: 
<select name="semno" id="sem">
<option value="one" class="xyz">I</option>
<option value="two" class="xyz">II</option>
<option value="three" class="abc">III</option>
</select>

Subject: 
<select name="subnm" id="subnm">
<option value="p">p</option>
<option value="q">q</option>
<option value="r">r</option>
</select>

我想我需要在 semno 下拉列表中使用rel选项,然后根据 semno subnm 下拉列表 em> rel。

如果我不是100%易于理解,请原谅我。我是这个网站的新手,我真的需要帮助。

提前谢谢你!

1 个答案:

答案 0 :(得分:0)

希望这是你想要的。我为第二个select菜单使用了相同的更改事件功能。

$items.change(function(){
  var $this = $(this).find(':selected'),
  rel = $this.attr('rel'),
  $set = $third.find('option.' + rel);

  if ($set.size() < 0) {
     $third.hide();
     return;
  }
  $third.show().find('option').hide();
  $set.show().first().prop('selected', true);
});

此外,我已在第一个select的{​​{1}}事件处理程序中触发了第二个change的更改事件。

select

请参阅此fiddle