2010-10-22 187 views
0

我有四個複選框,當我點擊兩個以上的複選框時,最後點擊複選框,我應該得到一個<div><a href="#">Compare</a> </div>包含一個比較鏈接。它可能是隨機的。我試圖用JQuery來做到這一點,下面是我的代碼,我需要改進。問題是我需要當兩個複選框將檢查下最後一個我應該看到隱藏的div。Jquery複選框

$(document).ready(function() { 
    $('input[type=checkbox]').change(function(){ 
    if($('input[name=checkbox1]').size() == 1){  
     $('#checkbox1_compare').show(); 
    } 
    else { 
     $('#checkbox1_compare').hide();  
    } 
    }) 
}); 
+0

如果你能向我們展示的複選框,並在相同的HTML片段比較鏈接,然後我們就可以更好地幫助你在你的JavaScript應如何改變。 – 2010-10-22 12:27:35

回答

1

您可以檢查.length和使用.toggle()基於有多少檢查,這樣應該努力顯示/隱藏:

$(function() { 
    $('input[type=checkbox]').change(function(){ 
    $('#checkbox1_compare').toggle($('input[name=checkbox1]').length > 1); 
    }); 
}) 

如果您需要移動DIV /鏈接元素是在最後一個檢查,像這樣的工作:

$(function() { 
    $('input[type=checkbox]').change(function(){ 
    var checked = $('input[name=checkbox1]:checked'); 
    $('#checkbox1_compare').toggle(checked.length > 1) 
          .insertAfter(checked.last()); 
    }); 
}) 
+0

不,那裏有四個複選框和四個Div。我們不能移動單個div。所以無論是顯示還是顯示。 – user484156 2010-10-22 13:16:37

+0

@user - 我不理解你的評論,你能發佈完整的標記嗎? – 2010-10-22 13:23:44

+0

尼克我沒有得到任何錯誤,而ecexuting你的JQuery。 – user484156 2010-10-22 13:37:05

0

試試這個: (根據拍攝@Nick Craver的來源)

HTML:

<div id="link-compare"><a href="#">Compare</a></div> 

JS:

$(document).ready(function() { 

    var refInputCheckbox = $('input[type="checkbox"]'); 

    $(refInputCheckbox).change(function(){ 

    $('#link-compare') 
     .toggle(
      $(refInputCheckbox).filter(':checked').length > 1 
     ); 

    }); 


});