2011-11-19 52 views
1

我试图让这两个标签出现,但遗憾的是其中只有一个是显示#city_label结合元素ID

<script type="text/javascript"> 
$(document).ready(function() { 
    function showDiv(element, pro2) { 
     if (pro2.children("option:selected").val() == 2) element.show(); 
     else element.hide(); 
    } 
    var myElement = $("div#pro2"); 
    var mypro2 = $("select#ptype"); 

    $("select").change(function() { 
     showDiv(myElement, mypro2) 
    }); 

    $("#ctry").change(function() { 
     $(".state").hide(); 

     var stateSelect = $("#state_" + $(this).val()); 

     if (stateSelect.length === 0) 
     $("#state_label" && "#city_label").hide(); 
     else { 
     $("#state_label" && "#city_label").show(); 
     stateSelect.show(); 
     }  
    });  
}); 
</script> 

HTML代码:

<label id="state_label" style="display:none">State:</label><br /> 
<label id="city_label" style="display:none">Postal or City:</label> 

回答

3

那是......不&&如何工作。在这种情况下,它将返回其右操作数。你想这是什么,在选择使用逗号:

<script type="text/javascript"> 
$(document).ready(function() { 
    function showDiv(element, pro2) { 
     if (pro2.children("option:selected").val() == 2) element.show(); 
     else element.hide(); 
    } 
    var myElement = $("div#pro2"); 
    var mypro2 = $("select#ptype"); 

    $("select").change(function() { 
     showDiv(myElement, mypro2) 
    }); 

    $("#ctry").change(function() { 
     $(".state").hide(); 

     var stateSelect = $("#state_" + $(this).val()); 

     if (stateSelect.length === 0) 
     $("#state_label, #city_label").hide(); 
     else { 
     $("#state_label, #city_label").show(); 
     stateSelect.show(); 
     }  
    });  
}); 
</script> 
+0

AKA [The Multiple Selector](http://api.jquery.com/multiple-selector/) –

0

您不能使用&&操作你的方式,选择一次,你应该将其包括在一个分离的单串多个元素逗号;试试这个:

if (stateSelect.length === 0) 
    $("#state_label,#city_label").hide(); 
else { 
    $("#state_label,#city_label").show(); 
    stateSelect.show(); 
}