如果div长度大于1,则显示按钮

时间:2013-09-12 16:01:31

标签: javascript jquery

如果div#choices内有多个div并且每次显示div#choices(默认情况下隐藏),我如何显示/隐藏(切换)按钮元素?这是我切换div#choices

的代码
$('#choices').on("change", ":checkbox", function(e) {
    var theName = $(this).attr('name');
    var theID = $(this).attr('value');
    var input = "";

    input = '<span>' + capitalize(theName) + '<input name="input_' + theName + '[]" data-id="' + theName + '_' + theID + '" value="" placeholder="' + capitalize(theName) + '" /><br/></span>';

    if ($(this).is(":checked")) {
        $("#" + theName + '_choice_' + theID).find(':button').before(input);
        $("#" + theName + '_choice_' + theID).show();
    } else {
        $("#" + theName + '_choice_' + theID).find(':not(button)').remove();
        $("#" + theName + '_choice_' + theID).hide();
    }
});

更新:添加了jsFiddle并根据建议处理了一些代码

以下是我正在处理的代码示例:jsFiddle

这也是我制作的代码,但没有成功,因为即使隐藏了儿童div,按钮仍然存在:

function toggleCreateVariationButton() {
    var toggleThis = $("#choices").children('div').length > 1 && $('#choices').children('div').css('display') != "none" ? true : false;
    $("button#create-variation").toggle(toggleThis);
}

我在克隆输入时随时调用该函数,出了什么问题?

1 个答案:

答案 0 :(得分:4)

您可以在$(el).children().length

中查看$('#choices').children().length的另一个元素中有多少个子元素

您还可以检查displayvisibility属性的当前CSS值,以查看该元素当前是否可见$('#choices')。css('display')

希望有所帮助