我需要构建一个表单,所有复选框,一个接一个地显示。因此,如果选中一个复选框,则下面显示另一个仅在检查上述一个时。 表单将包含数百个复选框和多个选项。所以Ifelse陈述不合适。 每个复选框的数据将从xml文件中解析。 唯一似乎坚持这个的代码是
$('#chkCheckBox').on('click', function (){
var nextID, body, nextEl;
nextID = $(this).attr(target);
nextEl = $('#' + nextID);
if(nextEl.style.visibility == 'hidden') {
nextEl.style.visibility = 'display'
}
})
请稍等一点指导。希望我有道理,觉得我要绕圈子。
答案 0 :(得分:-1)
nextEl
是一个jquery对象,而不是DOM对象,因此没有style
属性。使用jquery .show()
和.is()
if(!nextEl.is(':visible')) {
nextEl.show()
}
您似乎也为每个复选框使用相同的ID(chkCheckBox
),不要这样做,而是使用一个类并将您的jquery事件附加到该。
$('.cb').on('click',function(){
nextID = $(this).attr('target');
nextEl = $('#' + nextID);
if(!nextEl.is(':visible')) {
nextEl.show();
}
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div><input id="cb1" type="checkbox" class="cb" target="cb2"></div>
<div><input id="cb2" type="checkbox" class="cb" target="cb3" style="display:none"></div>
<div><input id="cb3" type="checkbox" class="cb" target="cb4" style="display:none"></div>