2016-05-10 227 views
-1

我有3個相同的名稱框,如果我點擊.fonarcom jquery隱藏所有.pagamento`。只刪除父元素jquery

有一種方法可以隱藏父容器中的.pagamento嗎?

var j = jQuery.noConflict(); 

j(".fonarcom").click(function() { 
    if (j(this).is(':checked')) { 
     j(".pagamento").hide(); 
    } else { 
     j(".pagamento").show(); 
    }; 
}); 

HTML:

<div class="large-6 columns "> 
    <label><input name="fonarcom" class="fonarcom" type="checkbox" value="SI"> L'azienda aderisce a FonarCom</label> 
</div> 


<div class="large-6 columns pagamento"> 
    <label>Modalità di pagamento</label> 
    <select name="pagamento" required> 
    <option value="">Seleziona un metodo di pagamento</option> 
    <option value="Contanti/Assegno Inizio Corso">Contanti/Assegno Inizio Corso</option> 
    <option value="Bonifico Anticipato">Bonifico Anticipato</option> 
    </select> 
</div> 
+1

請發表HTML請 –

+0

您發佈的HTML不會提供任何暗示什麼'pagament'你想隱藏和你想要顯示。 – callback

+0

如果具有類pagamento的div只有一個元素,那麼隱藏它將隱藏/顯示所有輸入。從您的代碼示例中,它似乎只有一個元素。是? – klabranche

回答

1

首先你需要父容器,所以我做了一個div包裝(但我想你已經有一個)

<div class="wrapper"> 
    <div class="large-6 columns "> 
     <label><input name="fonarcom" class="fonarcom" type="checkbox" value="SI"> L'azienda aderisce a FonarCom</label> 
    </div> 

    <div class="large-6 columns pagamento"> 
     <label>Modalità di pagamento</label> 
     <select name="pagamento" required> 
     <option value="">Seleziona un metodo di pagamento</option> 
     <option value="Contanti/Assegno Inizio Corso">Contanti/Assegno Inizio Corso</option> 
     <option value="Bonifico Anticipato">Bonifico Anticipato</option> 
     </select> 
    </div> 
</div> 
<div class="wrapper"> 
     <div class="large-6 columns "> 
      ... 

然後在jQuery的只是選擇容器,並找到正確的.pagamento

if(j(this).is(':checked')) { 
    j(this).closest(".wrapper").find(".pagamento").hide(); 
} else { 
    j(this).closest(".wrapper").find(".pagamento").show(); 
}; 

看到這裏的工作示例:FIDDLE

0

作爲pagamentofonarcom是的父div元素的兄弟節點。您可以使用closest()遍歷到div,然後使用.next()找到緊接的兄弟姐妹。

var j = jQuery.noConflict(); 

j(".fonarcom").click(function() { 
    j(this).closest('div').next(".pagamento").toggle(this.checked); 
}); 

在這裏,我不得不使用.toggle(display)

使用true顯示元素或false將其隱藏。