我正在尝试仅在选择第一个选项时显示第二个选择元素。
应该是直截了当但不起作用。
所以我有一些“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);
}
}
});
有人能告诉我我做错了什么吗?
答案 0 :(得分:1)
您很可能在两个选项之间有其他元素,因此您需要使用nextAll
这样的方法
var two= $(this).nextAll('.two:first');
next(selector)
方法将返回完全匹配兄弟,如果匹配选择器..
另外我相信你有一个错误的IF嵌套..现在只有当值为3时显示/隐藏(如果.one
的值为3,则隐藏和显示都会发生)
变化
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){
...
}