2012-01-11 111 views
-1

所以我有这个棘手的(至少对我来说)脚本来编写/修改。您可以在下面看到它的外观现在:当复选框被选中时,jQuery复制其他div元素

HTML:

<div class="holder" style="float: left; margin-right: 20px"> 
    <input type=checkbox class="checkbox" checked="checked" /> 
    <h2>Lorem ipsum</h2> 
</div> 
<div class="holder" style="float: left; margin-right: 20px"> 
    <input type=checkbox class="checkbox" checked="checked" /> 
    <h2>Lorem ipsum</h2> 
</div> 
<div class="holder" style="float: left; margin-right: 20px"> 
    <input type=checkbox class="checkbox" checked="checked" /> 
    <h2>Lorem ipsum</h2> 
</div> 
<div class="holder" style="float: left; margin-right: 20px; clear: right"> 
    <input type=checkbox class="checkbox" checked="checked" /> 
    <h2>Lorem ipsum</h2> 
</div> 

<div class="number"> 
    0 
</div> 

的Javascript:

var increment2=1; 
     $('.checkbox').live('click', function() { 
     $('.number').html('(' + increment2 + ')'); 
     increment2++; 
    }) 

http://jsfiddle.net/P3zMu/13/

什么需要做的是,当你的检查框中容器的h2内容应该以ul的形式出现在ul中。如果有3个盒子被检查,比在ul里面是3L等等...当你取消选中该盒子时,它正在被删除。

我希望我的解释是做出敏感的。谁能帮忙?

+2

您是否尝试过?你的代码甚至没有'ul'。 – 2012-01-11 20:42:11

+0

你的html代码中没有ul/li。 – redmoon7777 2012-01-11 20:44:13

+0

是的,对不起,以前的版本没有保存。现在它正在工作。 – Tomarz 2012-01-11 20:45:47

回答

3

我做你的HTML一些小的改动和下面的代码实现,

DEMO这里

var increment2 = 1; 

$('.checkbox').on('click', function() { 
    $('.number').html('(' + increment2 + ')'); 
    increment2++; 

    var $div = $(this).parent('div').get(0); 

    if ($(this).is(':checked')) {   
     $('#selected_items').append('<li selected-item="' + $div.id + '_selected">' + $($div).find('h2').text() + '</li>'); 
    } else { 
     $('#selected_items > li[selected-item^="' + $div.id + '"]').remove(); 
    } 
}); 
0

东西使用clone()方法应该工作:

var increment2=1; 
    $('.checkbox').live('click', function() { 
    increment2++; 
    $('.number').append($(this).next().clone()); 
}) 

这将只是一个元素追加复选框(在这种情况下,H2)的。数元素之后,但你的想法。为了正确工作,您需要为每个值放入不同的值,然后检查它们是否已经存在/取消选中它们 - 没有时间写出来。

相关问题