$(".tab-content").length
의미 : 해당 class의 갯수
<div>
<div>
<p></p>
</div>
</div>
개념
익명함수에 매개변수 e
추가
e.target
지금 실제로 클릭한 요소
e.currentTarget
이벤트 리스너가 달린 곳
$(this)
이벤트 리스너가 달린 곳, jQuery버전
this
이벤트 리스너가 달린 곳, javascript버전e.preventDefault();
기본 동작 막기
설명
$(".black-background").on("click", function (e) {
if (e.target === e.currentTarget) {
//class 추가 & 제거
}
});
e.target === e.currentTarget
e.currentTarget
검은색 배경을 의미한다. e.target
지금 실제로 클릭한 요소e.currentTarget
이벤트 리스너가 달린 곳$(this)
이벤트 리스너가 달린 곳, jQuery버전this
이벤트 리스너가 달린 곳, javascript버전e.preventDefault();
기본 동작 막기$(".black-background").on("click", function (e) {
if (e.target === e.currentTarget) {
$(".black-background").addClass("slide-up");
}
});
//수정전
for (let i = 0; i < $(".tab-button").length; i++) {
$(".tab-button").eq(i).on("click", function () {
$(".tab-button").removeClass("active");
$(".tab-button").eq(i).addClass("active");
$(".tab-content").removeClass("show");
$(".tab-content").eq(i).addClass("show");
});
}
//수정후
for (let i = 0; i < $(".tab-button").length; i++) {
$(".tab-button").eq(i).on("click", function () {
tabButtonClick(i);
});
}
function tabButtonClick(i) {
$(".tab-button").removeClass("active");
$(".tab-button").eq(i).addClass("active");
$(".tab-content").removeClass("show");
$(".tab-content").eq(i).addClass("show");
}
<ul class="list">
<li class="tab-button"></li>
<li class="tab-button"></li>
<li class="tab-button"></li>
<li class="tab-button"></li>
</ul>
<ul class="list">
<li class="tab-button"></li>
<li class="tab-button"></li>
<li class="tab-button"></li>
<li class="tab-button"></li>
</ul>
//javascript
document.querySelectorAll(".tab-button")
//참고 jQuery
$(".tab-button")
//javascript
document.querySelectorAll(".tab-button")[0]
//참고 jQuery
$(".tab-button").eq(0)
<ul class="list">
<li class="tab-button"></li>
<li class="tab-button"></li>
<li class="tab-button"></li>
</ul>
$(".list").on("click", function (e) {
if (e.target === document.querySelectorAll(".tab-button")[0]) {
tabButtonClick(0);
} else if (e.target === document.querySelectorAll(".tab-button")[1]) {
tabButtonClick(1);
} else if (e.target === document.querySelectorAll(".tab-button")[2]) {
tabButtonClick(2);
} else if (e.target === document.querySelectorAll(".tab-button")[3]) {
tabButtonClick(3);
}
});
$(".tab-button").length
란?//수정 전
if (e.target === document.querySelectorAll(".tab-button")[0]) {
tabButtonClick(0);
} else if (e.target === document.querySelectorAll(".tab-button")[1]) {
tabButtonClick(1);
} else if (e.target === document.querySelectorAll(".tab-button")[2]) {
tabButtonClick(2);
} else if (e.target === document.querySelectorAll(".tab-button")[3]) {
tabButtonClick(3);
}
//수정 후
for (let i = 0; i < $(".tab-button").length; i++) {
if (e.target === document.querySelectorAll(".tab-button")[i]) {
tabButtonClick(i);
}
}
const arr = [11,54,32];
for(let i = 0; i < arr.length; i++){
arr[i]
}
<ul class="list">
<li class="tab-button product-button">Products</li>
<li class="tab-button active information- button">Information</li>
<li class="tab-button shipping-button">Shipping</li>
<li class="tab-button shipping-button">Price</li>
</ul>
e.target === document.querySelector(".tab-button"
function tabButtonClick(i) {
$(".tab-button").removeClass("active");
$(".tab-button").eq(i).addClass("active");
$(".tab-content").removeClass("show");
$(".tab-content").eq(i).addClass("show");
}
$(".list").on("click", function (e) {
//버전1
for (let i = 0; i < $(".tab-button").length; i++) {
if (e.target === document.querySelectorAll(".tab-button")[i]) {
tabButtonClick(i);
}
});
data-이름="값"
<ul class="list">
<li class="tab-button" data-id="0">Products</li>
<li class="tab-button active" data-id="1">
Information
</li>
<li class="tab-button" data-id="2">Shipping</li>
<li class="tab-button" data-id="3">Price</li>
</ul>
e.target.dataset.id
function tabButtonClick(i) {
$(".tab-button").removeClass("active");
$(".tab-button").eq(i).addClass("active");
$(".tab-content").removeClass("show");
$(".tab-content").eq(i).addClass("show");
}
$(".list").on("click", function (e) {
tabButtonClick(e.target.dataset.id);
});
$(".list").data("이름","값");
$(".list").data("이름");
//이벤트 동작 함수
function tabButtonClick(i) {
$(".tab-button").removeClass("active");
$(".tab-button").eq(i).addClass("active");
$(".tab-content").removeClass("show");
$(".tab-content").eq(i).addClass("show");
}
//수정 전
$(".list").on("click", function (e) {
for (let i = 0; i < $(".tab-button").length; i++) {
if (e.target === document.querySelectorAll(".tab-button")[i]) {
tabButtonClick(i);
}
});
//수정 후
$(".list").on("click", function (e) {
tabButtonClick(e.target.dataset.id);
});
<form>
<select class="form-control" id="option1">
<option>모자</option>
<option>셔츠</option>
<option>하의</option>
</select>
</form>
//html
<form class="container my-5">
<div class="form-group">
<p>상품선택</p>
<select class="form-control" id="option1">
<option>모자</option>
<option class="shirts">셔츠</option>
<option>하의</option>
</select>
<div class="shirts-size size-select">
<p class="mt-4">사이즈선택</p>
<select class="form-control" id="option2">
<option>100</option>
<option>105</option>
<option>110</option>
</select>
</div>
</div>
</form>
.size-select {
display: none;
}
$("#option1").val() === "셔츠"
$("#option1").on("change", function (e) {
if ($("#option1").val() === "셔츠") {
$(".shirts-size").removeClass("size-select");
} else {
$(".shirts-size").addClass("size-select");
}
// $(".shirts-size").removeClass("size-select");
});
<button>
</button>
<div>
</div>
$("button").on("click", function () {
$("div").html("");
const productList = `<div>맥북</div><div>모니터</div><div>키보드</div>`;
$("div").append(productList);
//js
$("#clothes-select").on("change", function () {
if ($("#clothes-select").val() === "셔츠") {
$("#size-select").html("");
$(".shirts-size").removeClass("size-select__hide");
const shirtsSize = `<option>95</option>
<option>100</option>
<option>105</option>
<option>110</option>`;
$("#size-select").append(shirtsSize);
} else if ($("#clothes-select").val() === "하의") {
$("#size-select").html("");
$(".shirts-size").removeClass("size-select__hide");
const pantsSize =
"<option>30</option>" +
"<option>31</option>" +
"<option>32</option>";
$("#size-select").append(pantsSize);
}
});
//html
<form class="container my-5">
<div class="form-group">
<select class="form-control" id="clothes-select">
<option class="shirts">셔츠</option>
<option>하의</option>
</select>
<div class="shirts-size size-select__hide">
<select class="form-control" id="size-select"></select>
</div>
</div>
</form>
//수정 전
const shirtsSize = `<option>95</option>
<option>100</option>
<option>105</option>
<option>110</option>`;
//수정 후
let shirtsSize;
const shirtsSizeArr = [95, 100, 105, 110];
for (let i = 0; i < shirtsSizeArr.length; i++) {
shirtsSize = shirtsSize + "<option>" + shirtsSizeArr[i] + "</option>";
}