选中复选框,然后将其附加到div或者如果未选中则将其删除

时间:2014-05-22 10:29:51

标签: jquery

请查看jsfiddle http://jsfiddle.net/6fsf8/

如果选中复选框,则只需要将其附加到div,如果未选中,则需要将其从div中删除。

我试过这个,但它会继续将它附加到div。

if($(this).is(':checked'))
{
    $("#fororders").append($(this).attr('value'));

}

还有可能我应该在垂直顺序而不是水平顺序中显示它们,同时将它附加到div。

您需要展开所有Accordians以查看复选框。 能告诉我如何解决这个问题

4 个答案:

答案 0 :(得分:1)

你的元素是追加的,因为你不能删除它。

尝试类似:

if($(this).is(':checked'))
{

    $("#fororders").append('<div id="something">'+$(this).attr('value')+'</div>');

}else{
    $('#something').remove();
}

要垂直显示元素,请添加css属性display:block; 这是一些基础CSS,你不应该在这里问这个。

答案 1 :(得分:0)

你可以这样做:

if(this.checked)
{
    $("#fororders").append($(this).attr('value'));

}

而不是点击,您可以使用更改事件:

$(document).on("change", ":checkbox", function (e) {

if(this.checked)
{
    $("#fororders").append($(this).attr('value'));

}


});

UPDATED FIDDLE

答案 2 :(得分:0)

您必须从#fororders div中删除该项目。看看这个fiddle

答案 3 :(得分:0)

您需要将文本包装在元素中,然后附加该元素。这样您就可以更轻松地按id定位它,以便以后能够删除它:

演示:http://jsfiddle.net/abhitalks/6fsf8/3/

$(document).on("click", ":checkbox", function (e) {
    var v = $(this).val(); // cache the value
    if ($(this).is(':checked')) {
        // create a span with the same id as value and append it
        $("#fororders").append( $("<span>").attr("id", v).text(v) );
    } else {
        // target the span with the same id as value and remove it
        $("#fororders").find("span#" + v).remove();
    }

});