2011-07-07 162 views
-1

如何從列表中刪除選中的複選框並將它們添加到另一個列表中?如何從列表中刪除選中的複選框並將它們添加到另一個列表

 $('#mer').click(function() { 
     //var unchecked = []; 
     $('input[type="checkbox"]').each (function() { 
     if (this.checked) { 
     var txt = $(this).next("label").text(); 
     $('#ch').append($('<li>').append($(this).clone()).append(txt)); 
     $(':checkbox:checked').attr('disabled', true); 
     $(':checkbox:checked').remove(); 
      //$('.checklist').hide(); 
     $('#ch').show(); 
     //$('input[type="checkbox"]:not(:checked)').show('.checklist'); 
     } /*else { 
       unchecked.push(this); 
       var txt1 = $(this).next("label").text(); 
       $('.checklist').append($('<li/>').append($(this).clone()).append(txt1)); 
       $('.checklist').show(); 

      }*/ 
     }); 
+0

你可能會有點更具描述性,並解決您的問題? – Exitos

回答

2

這是非常簡單的:

$('#from :checked').appendTo('#to');

哪裏#from是父,併爲#to是其他選擇或你希望父母把它(又名選擇/複選框父)。

0

我不知道正是你正在嘗試做的,但這樣的事情可能工作:

$('input[type="checkbox"]').each (function() { 
if($(this).is('input:checkbox:checked')){ 
    $(this).appendTo('whereverClassOrElement').remove(); 
} 
}); 
0

我不知道你需要什麼,但這裏有一個整潔的交換樣品。如果您設置HTML這樣的:

<h3>List One</h3> 
<ul id="listOne"> 
    <li><label for="a">A</label><input type="checkbox" id="a" name="listOne"/></li> 
    <li><label for="b">B</label><input type="checkbox" id="b" name="listOne"/></li> 
    <li><label for="c">C</label><input type="checkbox" id="c" name="listOne"/></li> 
</ul> 

<br/> 
<h3>List Two</h3> 
<ul id="listTwo"> 
    <li><label for="d">D</label><input type="checkbox" id="d" name="listTwo" checked/></li> 
</ul> 

然後,你可以寫比較簡單的jQuery這樣的:

$(document).ready(function(){ 
    $('input[type=checkbox]').live('click', function(event){ 
     var t = $(this); 
     var from = 'listOne'; 
     var to = 'listTwo'; 
     if (!t.is(':checked')){ 
      var swap = to; 
      to = from; 
      from = swap; 
     } 
     $('#'+to).append(t.attr('name', to).parent()); 
    }); 
}); 

我有這樣一個的jsfiddle工作:http://jsfiddle.net/FgWhr/5/

相關問題