进入找到复选框的.each函数时遇到问题



我在应用程序的早期使用过类似的代码,它也能工作,但由于某种原因,我无法在这里激发.each函数中的任何内容。

我有一个申请,你可以勾选会员复选框,为房屋的保费申请10%的积分。前提的数量是动态的,因此当您选中成员资格框时,javascript会为页面上每个用户创建的前提创建一个前提复选框。没问题。

但是,我需要找到在成员框下选中的每个前提的标签,而我的代码失败了。里面的警报。每个都不会开火。我已经重写了它,让它一个接一个地到达那些复选框,但我仍然无法到达。

HTML

<div class="form-check creditChecks">
<input class="form-check-input creditCheckInput" type="checkbox" value='4' id="Membership">
<label class="form-check-label" for="Membership">Association Membership</label>
<div class="creditPremiseSelect">
<div class="form-check">
<input class="form-check-input creditPremiseInput" type="checkbox" value='1' id="MembershipcreditPrem1">
<label class="form-check-label" for="MembershipcreditPrem1">Premise #1</label>
</div>
</div>

附加更多前提复选框的Javascript:

//Populate Credit/Debit Premise Selector
function loadSelectPrems(ele){
var firedInput = ele;
var inputID = ele.attr('id');
var thisDiv = firedInput.closest('.creditChecks');
var selector = thisDiv.find('.creditPremiseSelect');

//Empty selector
selector.empty();
//Find all Premises on Policy
$('.premiseList').find('.premise').each(function(index){
var premiseID = $(this).find('.premiseNum').text();
var premNum = index+1;
selector.append($(`
<div class='form-check'>
<input class='form-check-input creditPremiseInput' type='checkbox' value='`+premNum+`' id='`+inputID+`creditPrem`+premNum+`'>
<label class='form-check-label' for='`+inputID+`creditPrem`+premNum+`'>`+premiseID+`</label>
</div>
`))

});

}

JQuery没有按预期工作:

if($('#Membership').is(':checked')){
doc.text(25, lineCount, 'Association Membership Credit 10% applied to:');
updateLine('s');
alert("Membership checked"); //This alert fires
$(this).closest('.creditChecks').find('.creditPremiseInput').each(function(){
alert("Looking at premises"); //This alert does not fire
if($(this).is(':checked')){
alert("Found checked premise");
var labeltxt = $(this).closest('.creditPremiseSelect').find('.form-check-label').text();
doc.text(30, lineCount, labeltxt);
updateLine('s');
}
});
updateLine('n');
}

我要冒险说错误在这一行:

$(this).closest('.creditChecks').find('.creditPremiseInput').each...

您似乎将$(this(引用为$('#Membership'(,但事实并非如此。此外,由于您已经分配了一个单数ID$('#Membership'),我认为您可能只需要在该行中直接访问$('.creditChecks')

if ($('#Membership').is(':checked')) {
doc.text(25, lineCount, 'Association Membership Credit 10% applied to:');
updateLine('s');
alert("Membership checked"); //This alert fires
$('.creditChecks').find('.creditPremiseInput').each(function() {
alert("Looking at premises"); //This alert does not fire
if ($(this).is(':checked')) {
alert("Found checked premise");
var labeltxt = $(this).closest('.creditPremiseSelect').find('.form-check-label').text();
doc.text(30, lineCount, labeltxt);
updateLine('s');
}
});
updateLine('n');
}

最新更新