如果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);
}
我在克隆输入时随时调用该函数,出了什么问题?
答案 0 :(得分:4)
您可以在$(el).children().length
$('#choices').children().length
的另一个元素中有多少个子元素
您还可以检查display
或visibility
属性的当前CSS值,以查看该元素当前是否可见$('#choices')。css('display')
希望有所帮助