我正在研究javascript中的一些遗留代码,我遇到了一个问题,我无法解决。
首次加载文档时,会调用名为addDecisionStateDetailsFields()
的JS函数。此方法生成HTML,并将其附加到某个div
。 Ctrl C, Ctrl V
版本位于pastebin.
因此,当文档首次加载时,我会获得所需的HTML。但在另一种情况下,我必须通过AJAX调用相同的函数,我做了类似的事情:
function editSPDecision(decision){
$('#serviceProcedureAddDecision').css('display', 'none');
jQuery.ajax({
type:'POST',
data: { 'decisionId': decision.id, 'authorizationId': ${authorizationId} },
url:'../editDecision/${id}',
success: function(data,textStatus) {
jQuery('#serviceProcedureEditDecision').html(data);
},
complete: function(XMLHttpRequest,textStatus) {
attachDatePickerClasses();
addDecisionStateDetailsFields("spDecision_approve", "approveDiv", "Approve", "${ReviewerApproveReason.getValueCommaSeperated()}", "${ReviewerApproveReason.getNameCommaSeperated()}");
}
});
}
在这里,我使用正确的参数调用了方法addDecisionStateDetailsFields()
。但是在AJAX调用完成后,我无法将生成的HTML附加到页面的HTML中。
要进行交叉检查,我在方法中放了一个alert
,在AJAX调用完成后,实际上调用了该方法,只是生成的HTML没有附加到div
。我在这里缺少什么东西吗?
答案 0 :(得分:-1)
在
之前的addDecisionStateDetailsFields内$('#' + masterParentDiv).append(generatedStr);
你能做到吗
alert($('#' + masterParentDiv).length);
这会告诉你是否找到了masterParentDiv,如果发现你应该找回0以外的东西。
不是100%肯定我会说,但是,改变
$('#' + masterParentDiv).append(generatedStr);
到
jQuery('#' + masterParentDiv).append(generatedStr);