Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
Tags
- 깃허브 레포지토리와 로컬 코드 연결하기
- 스나이퍼팩토리
- 취준생
- 맥북백틱
- 웅진씽크빅
- 하나은행
- 디지털취업
- 배포
- 개발자교육과정
- 미래내일일경험
- kdt
- udemy
- 네이버로그인창만들기
- DIGITALHANARO
- 버전생성프로세스
- 디지털하나로
- 디지털하나로입학식
- s3
- 프론트엔드배포
- 프로젝트캠프
- 맥북백틱입력
- github
- Next.js
- 유데미
- 부트캠프
- 프론트엔드개발자양성과정
- 백틱
- 디지털교육
- `
Archives
- Today
- Total
Land of Joe
221013 Donnerstag - 데이터바인딩/array/object 본문
데이터바인딩 하기를 배웠다.
데이터바인딩 Data Binding
: html에 데이터 꽂기 및 동기화 (client-side rendering, 반: server-side rendering)
위 모습을 만들기 위한 html은 다음과 같다
<div class="card-group container">
<div class="card">
<img src="https://via.placeholder.com/600">
<div class="card-body">
<h5>Card title</h5>
<p>가격 : ??</p>
<button class="btn btn-danger">주문하기</button>
</div>
</div>
<div class="card">
<img src="https://via.placeholder.com/600">
<div class="card-body">
<h5>Card title</h5>
<p>가격 : ??</p>
<button class="btn btn-danger">주문하기</button>
</div>
</div>
<div class="card">
<img src="https://via.placeholder.com/600">
<div class="card-body">
<h5>Card title</h5>
<p>가격 : ??</p>
<button class="btn btn-danger">주문하기</button>
</div>
</div>
</div>
다음의 자료를 데이터바인딩 하고자 한다.
<script>
var products = [
{ id : 0, price : 70000, title : 'Blossom Dress' },
{ id : 1, price : 50000, title : 'Springfield Shirt' },
{ id : 2, price : 60000, title : 'Black Monastery' }
];
</script>
위 products의 구조를 살펴보면 [ { }, { }, { } ]
object자료형 { } 3개를 포함하고 있는 array자료형 [ ]임을 알 수 있다.
array자료형 [ ]은 value만을 담고있는 반면,
object자료형 { }은 key:value를 담고있다는 차이가 있다.
데이터바인딩을 할 각 부분이
products 변수의 몇 번째 object인지, 해당 object에서 원하는 value의 key는 무엇인지 확인하여 꽂아주면 된다.
<script>
document.querySelectorAll('.card-body h5')[0].innerHTML = products[0].title;
document.querySelectorAll('.card-body p')[0].innerHTML = '가격: '+products[0].price+'원';
document.querySelectorAll('.card-body h5')[1].innerHTML = products[1].title;
document.querySelectorAll('.card-body p')[1].innerHTML = '가격: '+products[1].price+'원';
document.querySelectorAll('.card-body h5')[2].innerHTML = products[2].title;
document.querySelectorAll('.card-body p')[2].innerHTML = '가격: '+products[2].price+'원';
</script>
document.querySelectorAll('.card-body h5')는 클래스명이 card-body인 자식 중에 h5인 것을 뜻한다.
jQuery와 for문을 활용해 코드를 좀더 간단하게 만들 수도 있다.
//jQuery
for (let i=0; i<products.length; i++) {
$('.card-body h5').eq(i).html(products[i].title);
$('.card-body p').eq(i).html(products[i].price);
}
코드 실행 결과 다음의 모습을 확인할 수 있다~
'🌱 dailyStep' 카테고리의 다른 글
[React] 리액트 filter, map의 활용... (0) | 2023.07.14 |
---|---|
리액트 파일 열기 (부제: 난 개 바보 쉨이다...) (0) | 2023.07.13 |
발등에 용암 떨어져서 시작하는 리액트.. (0) | 2023.07.10 |
221006 Donnerstag - return/소수점 (0) | 2022.10.07 |
221005 Mittwoch - 타이머/정규식/캐러셀 (0) | 2022.10.06 |