
HTML
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>tab 메뉴를 작성하면서 :eq(index번호) 에 대해서 알아봅니다.</title>
<link rel="stylesheet" href="css/04.css">
<script type="text/javascript" src="../../js/jquery-3.7.1.min.js"></script>
<script type="text/javascript" src="js/04.js"></script>
</head>
<body>
<div id="container"></div>
</body>
</html>
JS
$(document).ready(function(){
const arr_data = [{'city':'런던',
'content':'런던 (영어: London)은 잉글랜드와 영국의 수도이다.',
'photo':'london.jpg'}
,{'city':'파리',
'content':'파리(Paris)는 프랑스의 수도이다.',
'photo':'paris.jpg'}
,{'city':'앙카라',
'content':'터키의 수도이다.',
'photo':'ankara.jpg'}
];
let html = `<p>탭 메뉴를 선택해 보세요</p>
<div id='tab'>`;
arr_data.forEach(item => {
html += `<button type="button">${item.city}</button>`;
})
html += `</div>`;
arr_data.forEach(item => {
html += `<div class= "content">
<h3>${item.city}</h3>
<p>${item.content}</p>
<img src='./images/${item.photo}' width='512px' height='288px'/>
</div>`;
})
$("div#container").html(html);
$(document).on('click', "div#tab > button", function(e){
const index = $('div#tab > button').index($(e.target));
$("div#container > div.content").css({"display":""});
$(`div#container > div.content:eq(${index})`).css({"display":"block"});
$("div#tab > button").removeClass("active");
$(e.target).addClass("active");
});
$("div#tab > button").eq(0).trigger('click');
})
CSS
body {
font-family: Arial;
}
div#container {
width: 60%;
margin: 0 auto;
padding: 20px;
}
div#container > div#tab {
border: solid 1px #ccc;
background-color: #f1f1f1;
overflow: hidden;
}
div#tab > button {
width: 100px;
border: none;
outline: none;
cursor: pointer;
padding: 14px 16px;
font-size: 17px;
float: left;
}
div#container > div.content {
display: none;
border: 1px solid #ccc;
padding: 6px 12px;
border-top: none;
}
.active {
background-color: navy;
color: white;
}
정리
- jQueryStudy -> 01_eventHandling -> chap06_addClass_removeClass_accordion_tab_SeatReservation -> 04_tabMenu_eq.html, 04.js, 04.css