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

Javascript 使用下拉列表隐藏/显示Jquery,javascript,jquery,Javascript,Jquery,亲爱的所有人,我试图做这些事情非常简单,但我不能得到我的头周围的语法 我有一个下拉列表。选项有两种类型的类。如果选择了类为“小于3”的选项,我们将看到警报。 如果选项的类别为“更大”,我们会看到不同的警报 以下是我的尝试: (请注意,我最初的工作版本是将点击处理程序直接附加到OPTION元素。但这只在Firefox中起作用,所以我改变了方法 $('#time_at_address').change(function() { if ( $(this).children('.less_tha

亲爱的所有人,我试图做这些事情非常简单,但我不能得到我的头周围的语法

我有一个下拉列表。选项有两种类型的类。如果选择了类为“小于3”的选项,我们将看到警报。 如果选项的类别为“更大”,我们会看到不同的警报

以下是我的尝试: (请注意,我最初的工作版本是将点击处理程序直接附加到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!');
        }
    });

我不确定在JS中空数组的计算结果是否为
false
。因此,为了确保您可以使用:

$(this).children('.less_than_3:selected').length > 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和另外两个IF)链接在一起吗?(因为它们返回相同的结果。)


我尝试使用两个垂直管道字符,但是没有用

谢谢Felix。但是“.length>0”抛出了一个错误。我只是想告诉clarfiy-我所要做的是,当用户从列表中选择某个选项时,会显示某个DIV。(如果他们选择不同的选项,会显示不同的DIV)>我只是使用警报来简化事情。我甚至不确定我是否应该使用:selected(当我在Firebug中查看属性时,该属性甚至不存在)try myval=$(this.val();if((myval='小于1')| |(myval='1年')| | |(myval='2年'){$('#address(address)小于)')。show()}否则$('#address(address)小于)')。hide()}是的,是的!谢谢你的标记。它减少了我的代码。你知道为什么它需要在变量中才能工作吗?