Cần giúp đỡ tìm lỗi code JS không append vào HTML được

em có đoạn code JS append vào HTML như sau: và nó k append vào file HTML được. ae giúp em tìm lỗi với, many thanks

var images = [
{
	src: 'xxx.jpg',
	count_like: 9898,
	user: {
		name: 'Nguyen Minh Huy',
		avatar: 'xxx.jpg'
	}
},
{
	src: 'xxx.jpg',
	count_like: 98,
	user: {
		name: 'Nguyen Minh Huyen',
		avatar: 'xxx.jpg'
	}
},
{
	src: 'xxx.jpg',
	count_like: 123,
	user: {
		name: 'Nguyen Minh hoang',
		avatar: 'xxx.jpg'
	}
},
{
	src: 'xxx.jpg',
	count_like: 999,
	user: {
		name: 'Nguyen Minh hao',
		avatar: 'xxx.jpg'
	}
},
{
	src: 'xxx.jpg',
	count_like: 345,
	user: {
		name: 'Nguyen Minh ha',
		avatar: 'xxx.jpg'
	}
},
{
	src: 'xxx.jpg',
	count_like: 345,
	user: {
		name: 'Nguyen Minh ha',
		avatar: 'xxx.jpg'
	}
},

];

var app = {
	draw : draw,
};

$(document).ready(function () {
		app.draw();
});

function draw(){
	images.each(function(key,image) {
		var html = 
		
		'<div class="image">'
		+	'<img src="'+image.src+'">'
	+	'</div>'
	+	'<div class="content-img">'
		+	'<div class="like">'
			+	'<a href="#">'
				+	'<img src="like.png">'
				+	'<span>'+image.count_like+'</span>'
			+	'</a>'
		+	'</div>'
		+	'<div class="user">'
			+	'<img src="'+image.user.avatar+'">'
			+	'<a href="#">'+image.user.name+'</a>'
		+	'</div>'
		+	'<div class="download">'
			+	'<a href="#">'
				+	'<img src="download.png">'
			+	'</a>'
		+	'</div>'
	+	'</div>';

	$('footer div.col-4').append(html)
	});
}

images.each(function(key, image){ ... })

chuyển thành

images.forEach(function(image){ ... })
hoặc
for (let image of images){ ... }

1 Like

vẫn k được bạn ạ ! t gửi bạn cả folder luôn nhé

Ừm, cứ gửi xem sao ^^

ở đây k có nút upload folder nhỉ? :((

Muốn gửi file nhanh bạn có thể dùng http://wikisend.com/

2 Likes

chỉ up được file thôi b à :frowning:

:smiley: Bạn có thể nén lại và chia sẽ file nén là được.

2 Likes

cảm ơn bạn nhé :))))))

bạn ơi, file đây http://wikisend.com/download/503762/unsplash.zip

var app = {
draw : draw,
}; ?? nhìn qua là biết cái này undefine

nó chỉ là khai báo đối tượng thôi bạn !

Hahaha! Trong Javascript thì nó vẫn được =)). Function nó sẽ tự đẩy lên đầu hết

nhìn lại lexical scope của nó. :)) không tin hãy f12 lên và nhìn nhé :))

Sorry em mắt mờ không nhìn rõ
=))

mà mình làm js cũng nhiều sao không nhớ nó có cái hàm each này nhỉ, không biết bạn kai lấy nó ở đâu …

Hình như nó trong JQuery thì phải

hơn nữa callback truyền vào iterator thường sẽ nhận tham số là value và key chứ nhỉ bạn sao kia lại là key, value ?

Ừm, công nhận, cũng đang thắc mắc.

Code đã fix!

var images = [
{
	src: 'xxx.jpg',
	count_like: 9898,
	user: {
		name: 'Nguyen Minh Huy',
		avatar: 'xxx.jpg'
	}
},
{
	src: 'xxx.jpg',
	count_like: 98,
	user: {
		name: 'Nguyen Minh Huyen',
		avatar: 'xxx.jpg'
	}
},
{
	src: 'xxx.jpg',
	count_like: 123,
	user: {
		name: 'Nguyen Minh hoang',
		avatar: 'xxx.jpg'
	}
},
{
	src: 'xxx.jpg',
	count_like: 999,
	user: {
		name: 'Nguyen Minh hao',
		avatar: 'xxx.jpg'
	}
},
{
	src: 'xxx.jpg',
	count_like: 345,
	user: {
		name: 'Nguyen Minh ha',
		avatar: 'xxx.jpg'
	}
},
{
	src: 'xxx.jpg',
	count_like: 345,
	user: {
		name: 'Nguyen Minh ha',
		avatar: 'xxx.jpg'
	}
},

];


function draw(){
	images.forEach(function(image) {
		var html = 
		
		'<div class="image">'
		+	'<img src="'+image.src+'">'
	+	'</div>'
	+	'<div class="content-img">'
		+	'<div class="like">'
			+	'<a href="#">'
				+	'<img src="like.png">'
				+	'<span>'+image.count_like+'</span>'
			+	'</a>'
		+	'</div>'
		+	'<div class="user">'
			+	'<img src="'+image.user.avatar+'">'
			+	'<a href="#">'+image.user.name+'</a>'
		+	'</div>'
		+	'<div class="download">'
			+	'<a href="#">'
				+	'<img src="download.png">'
			+	'</a>'
		+	'</div>'
	+	'</div>';

	$('footer div.col-4').append(html)
	});
}

$('li a.more').on('click', function(){
	$('ul.toggle-hide').toggle();
});

var app = {
	draw : draw,
};

$(document).ready(function () {
	app.draw();	
});
83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?