Comment obtenir la valeur d'un élément DOM à partir d'un objet JavaScript encapsulé? Cela ne fonctionne pas. Je n'ai rien comme dans indéfini. Je pensais que la page n'était pas rendue et que je ne pouvais pas la voir, mais je l'ai mise dans la fonction .ready et je continue d'être indéfinie.Comment puis-je référencer un élément DOM lorsque j'utilise le module Module en JavaScript?
$(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
Non jQuery s'il vous plaît (oui, je sais que je suis en utilisant la fonction document.ready.)
Vous faites exactement comme sans modules ?! – Bergi
Notez que 'myModalBody' est une méthode de votre module, mais vous ne l'appelez pas. – Bergi
'this.myModalBody.addEventListener (" click ", this.getNewLoans(), false);' devrait être 'this.monModalBody.addEventListener (" click ", this.getNewLoans.bind (this), false);' – Barmar