2016-05-10 181 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将其隐藏。