캡슐화 된 JavaScript 객체에서 DOM 요소의 값을 얻으려면 어떻게해야합니까? 이것은 작동하지 않습니다. 나는 정의되지 않은 것을 얻지 못한다. 페이지가 렌더링되지 않아서 보지 못했지만, .ready 함수에 넣었고 계속 정의되지 않습니다.JavaScript에서 모듈 패턴을 사용할 때 DOM 요소를 어떻게 참조합니까?
$(document).ready(function() {
GetLoans = {
myModal: function() {
return document.querySelector("#myModal")
},
myModalBody: function() {
return document.querySelector(".modal-body")
},
getNewLoans: function() {
var xhr;
xhr = new XMLHttpRequest();
var url = "/api/books";
xhr.open("GET", url, true);
xhr.responseType = 'json';
xhr.send(null); //or your data
xhr.onreadystatechange = function() {
if (xhr.readyState == 4 && (xhr.status == 200)) {
var result = xhr.response;
for (var key in result) {
if (result.hasOwnProperty(key)) {
//console.log(result[key].patron_id);
this.myModalBody.innerHTML = result[key].patron_id;
}
}
}
}
// var serverResponse = xhr.responseText;
// this.myModalBody.innerHTML = serverResponse;
},
bindUIActions: function() {
// this.myModalBody.addEventListener("click", this.getNewLoans(), false);
},
init: function() {
this.getNewLoans();
//this.bindUIActions();
}
};
GetLoans.init();
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<!-- Modal -->
<div class="modal fade" id="myModal" tabindex="-1" role="dialog" aria-labelledby="myModalLabel">
<div class="modal-dialog" role="document">
<div class="modal-content">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">×</span>
</button>
<h4 class="modal-title" id="myModalLabel">Modal title</h4>
</div>
<div class="modal-body">
...
</div>
<div class="modal-footer">
<button type="button" class="btn btn-default" data-dismiss="modal">Close</button>
<button type="button" class="btn btn-primary">Save changes</button>
</div>
</div>
</div>
</div>
Uncaught TypeError: Cannot set property 'innerHTML' of undefined
at XMLHttpRequest.xhr.onreadystatechange
없음 jQuery를은 (예, 나는 내가 Document.Ready 기능을 사용하고 알고있다.) 제발 먼저
을 당신은 정확히 어떤 모듈없이 그것을 할! – Bergi
'myModalBody'는 모듈의 메소드이지만, 호출하지는 않습니다. – Bergi
는'this.myModalBody.addEventListener ("클릭"this.getNewLoans()는 false)''this.myModalBody.addEventListener해야한다(), this.getNewLoans.bind (이를 "클릭", 거짓),' – Barmar