我试图同时显示两个标签,但不幸的是,只有其中一个显示#city_label

<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>

最佳答案

那不是&&的工作原理。在这种情况下,它将返回其右操作数。您想要的是在选择器中使用逗号:

<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>

关于javascript - 组合元素ID,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/8191745/

10-09 15:20