使用下拉列表隐藏/显示Jquery

时间:2010-02-20 23:06:53

标签: javascript jquery

亲爱的所有人,我试图做的事情非常简单,但无法理解语法。

我有一个下拉列表。 OPTION有两种类型。如果选择了类'less_than_3'的OPTION,我们会看到一个警告。 如果一个类别为“更大”的OPTION,我们会看到不同的警告。

继承我的尝试: (请注意我最初有一个工作版本,将点击处理程序直接附加到OPTION元素。但这仅适用于Firefox,所以我改变了我的方法。

$('#time_at_address').change(function() {
    if ( $(this).children('.less_than_3:selected') )  {
        alert('less than 3!');
    }
    if ( $(this).children('.greater_than_3:selected') )  {
        alert('greater than 3!');
        }
    });

2 个答案:

答案 0 :(得分:0)

我不确定JS中的空数组是否计算为false。所以要确保你可以使用:

$(this).children('.less_than_3:selected').length > 0

语法看起来很好。我认为你的实际问题是警报框出现了。

答案 1 :(得分:0)

我设法使用不同的方法来解决这个问题。通过使用val()而不是按类名过滤。

因此..

    $('#time_at_address').change(function() {
            if ( $(this).val() == 'less than 1' ) {
                    $('#address_less_than').show();
            }
            else if ( $(this).val() == '1 year' ) {
                    $('#address_less_than').show();
            }
            else if ( $(this).val() == '2 years' ) {
                    $('#address_less_than').show();
            }
            else {
                $('#address_less_than').hide();
            }
    });

但任何人都可以告诉我......是否不可能将这些第一语句(IF和两个ELSE IF)链接在一起? (因为它们会返回相同的结果。)

我尝试使用两个垂直管道字符,但它不起作用