01/10/2018, 16:22

Đoạn code em viết không chạy được

Em mới học lập trình với Javascript. Có đoạn code sau em viết ra mà không hiểu nó sai ở đoạn nào mà lại không chạy được. Mong mn ai biết chỉ em với:

 <body>
<p>LINE 1</p>
<p>LINE 2</p>
<p>LINE 3</p>
<p>LINE 4</p>
<p>LINE 5</p>
<script type="text/javascript">
	//Get <ul> of <p> tag name:
	myList = document.getElementsByTagName('p');
	//Run loop:
	var arr =  ['a','b','c','d'];
	for (var i = 0;  i < myList.length; i++){
		myList[i].addEventListener('click', function (){
			console.log(arr[i]);
		})
	}
</script>

Đại loại là em tạo ra 5 cái thẻ p. và chạy vòng lặp gán sự kiện khi click vào một thẻ thì trình duyệt sẽ console.log ra một phần tử trong mảng arr tương ứng. ví dụ: click vào

line 1

ứng với i = 0 sẽ console.log ra arr[0] là “a”. nhưng khi chạy trên trình duyệt nó lại báo undefined ( kiểu như không ác định định các phần tử mảng ấy ạ). Mn ai biết cách chỉ ro mình với ạ. Em cảm ơn.
Hung viết 18:25 ngày 01/10/2018
var myList = document.getElementsByTagName('p');
var arr = ['a', 'b', 'c', 'd'];

for (var i = 0; i < myList.length; i++) {
  (function (callback, i) {
    callback(i);
  })(function (i) {
    myList[i].addEventListener('click', function () {
      console.log(arr[i]);
    });
  }, i);
}
Hinh viết 18:25 ngày 01/10/2018

Em cảm ơn ạ.

Bài liên quan
0