簡體   English   中英

選擇選項時,jQuery隱藏Div

[英]JQuery Hide Div when Option is Selected

選擇特定的OPTION值時,我想隱藏DIV的類

    <select id="tagtype" name="type">
        <option value="type_s">Standard</option>
        <option value="type_o">Overstock</option>
        <option value="type_snd">Scratch &amp; Dent</option>
        <option value="type_mult">Multiples</option>
    </select>

<div class="multiples>stuff here</div>

<script type="text/javascript"> 
$(document).ready(function() {
  if ($("#tagtype option[value='type_mult']").length)
   $("multiples").css('display','none');

});
</script>

更好的方法可能是如下所示:

jQuery(document).ready(function() {
   jQuery("#tagtype").change(function() {
      if(jQuery(this).find("option:selected").val() == "type_mult") {
         jQuery(".multiples").hide();
      }
   });
});

您正在將處理程序綁定到選擇框的onChange事件。 只要在選擇框中選擇一個新選項,就會調用該處理程序。

在處理程序中, this是指觸發onChange事件的選擇框。 您尋找所選選項的值。 如果此值等於“ type_mult”,則將隱藏所有具有class multiples元素。

現有代碼的問題在於,它只會運行一次; 頁面首次完成加載時。 您需要在選擇框中響應更改,這就是為什么需要綁定到onChange事件的原因。 另一個問題是if語句。 即使您使用了代碼並在onChange處理程序中,它if每種類型中輸入if塊,因為您沒有檢查是否選擇了帶有“ type_mult”值的選項。 您只是在檢查它是否存在。 由於它始終存在,因此if的代碼將始終運行。 另外,當您要使用類名時,需要在類名前加一個句點。 因此,您要執行$(.multiples)而不只是$(multiples) (后者將搜索名為multiples的標記,這不是您想要的)。

需要更多信息-運行此代碼時實際發生了什么?

我的猜測是第二個jQuery選擇器是錯誤的:

$(".multiples").css('display','none');

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM