显示x如果x显示y如果y(我知道的标题错误)

时间:2012-12-19 11:01:46

标签: jquery html

好的,所以我有一些jQuery代码,如果选择了下拉菜单中带有前缀Blue的项目,则会显示一个输入框。

代码:

$(function() {
    $('#text1').hide();
    $('#select2').on('change', function(event) {
        var opt = this.options[ this.selectedIndex ];
        var picked_blue = $(opt).text().match(/Blue/i);
        if(picked_blue) {
            $('#text1').show();
        } else {
            $('#text1').hide();
        }
    });
});

但我还需要添加的是,如果选择了下拉菜单中的任何其他项目,则显示其他内容。而我需要显示的是项目的另一个下拉菜单。

3 个答案:

答案 0 :(得分:6)

这不适合你:

if(picked_blue) {
  $('#text1').show();
  $('#text2').hide();
} else {
  $('#text1').hide();
  $('#text2').show();
}

其中text1text2分享DOM中的位置,分别是“蓝色”和“不是蓝色”等文字?

答案 1 :(得分:2)

你需要在条件的其他部分放置条件。

$(function() {
    $('#text1').hide();
    $('#select2').on('change', function(event) {
        var opt = this.options[ this.selectedIndex ];
        var picked_blue = $(opt).text().match(/Blue/i);
        if(picked_blue) {
            $('#text1').show();
        } else {
            $('#text1').hide();
            if($(opt).text().match(/Red/i))
            {
                  //You code here
            }
        }
    });
});

或缩短代码。

$(function() {
    $('#text1').hide();
    $('#select2').on('change', function(event) {
       selectedVal = $(this).val().toLowerCase();
       switch (selectedVal){
         case 'blue':
            //Your code
            break;
          case 'red':
           //Your code
           break;
          case 'black':
            //Your code
            break;
          default:
            //your code
        }
   });
});

答案 2 :(得分:1)

为什么你不能尝试使用Jquery

中的切换功能
$('#text1').toggle();