显示基于选择选项的元素 - jQuery,HTML

时间:2010-10-18 17:34:17

标签: jquery

我正在尝试仅在选择第一个选项时显示第二个选择元素。

应该是直截了当但不起作用。

所以我有一些“1”类的选择元素,后面跟着一个选择o类“two”。 在文档就绪函数中,我首先隐藏“2”类的所有选择:$('.two').hide();正常工作 然后我有一个函数(也在文档就绪函数中),如果从类“one”的选择中选择某个值,则显示下一个类“two”的选择。

$('.one').change(function() {  
    var two= $(this).next('.two');  
    if ($(this).val()==3){  
        if(two.is(':hidden')) {  
            two.fadeIn(50);  
        }else{  
            two.fadeOut(50);  
        }  
    }  
});

有人能告诉我我做错了什么吗?

2 个答案:

答案 0 :(得分:1)

您很可能在两个选项之间有其他元素,因此您需要使用nextAll这样的方法

var two= $(this).nextAll('.two:first'); 

next(selector)方法将返回完全匹配兄弟,如果匹配选择器..

另外我相信你有一个错误的IF嵌套..现在只有当值为3时显示/隐藏(如果.one的值为3,则隐藏和显示都会发生)

示例:http://jsfiddle.net/UXS2X/

变化

if ($(this).val()==3){  
        if(two.is(':hidden')) {  
            two.fadeIn(50);  
        }else{  
            two.fadeOut(50);  
        }  
    }  

if ($(this).val()==3){  
        if(two.is(':hidden')) {  
            two.fadeIn(50);  
        }  
    } 
 else{  
        two.fadeOut(50);  
     }

答案 1 :(得分:0)

试试这个:

if ($('select.two option:selected').val()==3){
...
}