[英]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 & 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.