0

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);
}

我每次克隆输入时都会调用该函数,有什么问题?

4

1 回答 1

4

$(el).children().length您可以在您的情况下检查另一个元素中有多少子元素$('#choices').children().length

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

希望有帮助

于 2013-09-12T16:12:42.310 回答