2011-11-19 75 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(); 
}