2013-10-25 67 views
0

瞄準jQuery中只有一個切換(後選擇下一個DIV)的不是所有的人只有一個選擇jQuery中不是所有的人

這工作,除了它的定位顯示了所有的切換,當我只希望它顯示只是它下面的一個。

繼承人的HTML

$(".toggle").hide(); 
$(function() { 
    $(".binary").change(function() { 
    if ($(this).val() == "0"){ 
     $(".toggle").hide(); 
    } else { 
     $(".toggle").show(); 
    } 
    $("#pane").customScrollbar("resize", true); 
    }); 
}); 

繼承人的HTML

    <div class="option checkbox"> 
         <label class="field_wrap"> 
          <div class="label">1</div> 
          <div class="field"> 
           <select class="binary" name="option_1"> 
            <option value="0"></option> 
            <option value="1"></option> 
           </select> 
          </div> 
         </label> 
        </div> 
        <div class="toggle"> 
        toggle 1 
        </div> 
        <div class="option checkbox"> 
         <label class="field_wrap"> 
          <div class="label">1</div> 
          <div class="field"> 
           <select class="binary" name="option_1"> 
            <option value="0"></option> 
            <option value="1"></option> 
           </select> 
          </div> 
         </label> 
        </div> 
        <div class="toggle"> 
        toggle 2 
        </div> 
+0

嘗試使用'$(this)' – elclanrs

+0

找到相對選擇器您是否檢查過任何答案對您有幫助? –

回答

0

您可以使用jQuery的.next()方法。

$(function() { 
    $(".binary").change(function() { 
     if($(this).val() == 0){ 
      $(this).parents("div.checkbox").next('.toggle').hide(); 
     } else { 
      $(this).parents("div.checkbox").next('.toggle').show(); 
     } 
     $("#pane").customScrollbar("resize", true); 
    }); 
}); 

這是Demo Fiddle

+0

別管它了幫助你的答案。 http://stackoverflow.com/help/accepted-answer –

0

你應該嘗試:第一選擇

$(function() { 
    $(".binary:first").change(function() { 
     if($(this).val() == "0"){ 
      $(this).next(".toggle").hide(); 
     } else { 
      $(this).next(".toggle").show(); 
     } 
     $("#pane").customScrollbar("resize", true); 
    }); 
}); 
0

嘗試以下

$(".toggle").hide(); 
$(function() { 
    $(".binary").change(function() { 
    if ($(this).val() == "0"){ 
     $(this).parent().parent().parent().next().hide(); 
    } else { 
     $(this).parent().parent().parent().next().show(); 
    } 
    $("#pane").customScrollbar("resize", true); 
    }); 
}); 
0

這類似於@ Ganesh的答案,但具有較大的特殊性,這可能是在您的方案非常重要。

$(".toggle").hide(); 

$(function() { 
    $(".binary").change(function() { 
     if ($(this).val() == "0") { 
      console.log($(this).closest('div.option.checkbox').length); 
      $(this).closest('div.option.checkbox').next(".toggle").hide(); 
     } else { 
      $(this).closest('div.option.checkbox').next(".toggle").show(); 
     } 
     $("#pane").customScrollbar("resize", true); 
    }); 
}); 
相關問題