for문보다 forEach문이 훨씬 사용이 쉽기때문에, forEach문 자주 씀
for (let index = 0; index < array.length; index++ {
const element = array[index];
}
for (let i = 0; i < a.length; i++) {
console.log(a[i]);
}
array.forEach(element => {
});
a.forEach(element => {
console.log(element);'
})
shift
+ cmd
+ l
= 콘솔로그shift
+ cmd
+ a
= 알럿창shift
+ cmd
+ f
= 펑션입력shift
+ cmd
+ -
= 제이쿼리문 입ㅂ력{
"key": "shift+cmd+l",
"command": "editor.action.insertSnippet",
"when": "editorTextFocus",
"args": {
"snippet": "console.log($1);"
}
},
{
"key": "shift+cmd+a",
"command": "editor.action.insertSnippet",
"when": "editorTextFocus",
"args": {
"snippet": "alert();"
}
},
{
"key": "shift+cmd+f",
"command": "editor.action.insertSnippet",
"when": "editorTextFocus",
"args": {
"snippet": "function(){$1}"
}
},
{
"key": "shift+cmd+-",
"command": "editor.action.insertSnippet",
"when": "editorTextFocus",
"args": {
"snippet": "<script src=\"https://code.jquery.com/jquery-3.6.0.min.js\"></script>"
}
},
$('.test').append()
$('.test').prepend()
아래의 경우 test의 값을 ""로 비워주고, focus로 해당칸에 깜빡이게 해줌
$('.test').val("").focus();
원래 문서에 있던 항목이 아닌, append 또는 prepend와 같이 생성된 항목들은 event가 걸리지 않음.
-> html에서 읽고 js로 넘어갔는데, 기존 html에 없었기때문에!
아래와 같이 입력하면 해결됨 ❗
$(document).on("click", ".del", function(){
})
$(document).on("click", ".del", function(){
})
$(document).on("click", ".del", function(){
$(this).parent().remove()
})
$(document).on("click", ".del", function(){
$(this).siblings().remove()
})
<script>
$(function(){
})
</script>
addClass() / removeClass()
클래스에 ~~를 추가 또는 제거 하는 것
toggleClass()
addClass+removeClass를 합친 것(추가했다가 제거했다가)
slideUp() / slideDown()
슬라이드를 열고, 닫는 것
slideToggle()
slideUp+slideDown 두개 합친것(열었다가 닫았다가)
hasClass()
~~라는 클래스를 가지고 있다면.
stop()
스크립트 진행중인걸 멈추고 즉시 끊는 기능
ex) this에게 'on'이라는 클래스를 주고, 그것의 형제모두선택(sub의 클래스를가지고있는)를 선택하고, 모든 스크립트를 멈춘뒤, 슬라이드를 올려라 라는 구문
$(this).removeClass('on').siblings('.sub').stop().slideUp();
ex) this에게 'on'이라는 클래스를 주거나 지우고, 그것의 형제모두선택(sub의 클래스를가지고있는)를 선택하고, 모든 스크립트를 멈춘뒤, 슬라이드를 올리거나 내리라는 구문
$(this).toggleClass('on').siblings('.sub').stop().slideToggle();
scroll()
스크롤 한다는 뜻
scrollTop()
스크롤바의 시작위치
Math.floor()
소수점 버리고 표기하기
offset().top
문서 전체에서 태그의 시작 위치
아래의 코드에서, a 태그에 btn2의 클래스를 주고, 스크립트를 작성했지만, 작동하지 않음.
이유는?
a태그에 기본적으로 링크 기능이 들어가기 때문에, 스크립트 기능이 묻히게 되는 것!
-> 이 때 사용하는게 preventDefault
<a href="" class="btn2">버튼2</a>
$('.btn2').click(function(){
$('.menu').addClass('on')
})
위 코드에서 .btn2에 preventDefault 입력시 링크기능 없애주고, addClass 기능 작동되게 함.
$('.btn2').click(function(e){
e.preventDefault();
$('.menu').addClass('on')
})
위와같이, 창이 켜지면서 뒤에 배경은 흐려지게 하고싶을때 사용
.dimmed{
position:fixed;
top:0;
left:0;
right:0;
bottom:0;
background: #0f0;
opacity: 0;
visibility: hidden;
//opacity0 만 넣게 되면, 투명도가 0이 되어있는 상태라, 화면 위에 투명한 막 씌운게 되어서 클릭이 불가능하기 때문에, visibility: hidden; 을 같이 써주자
}
body.hidden {
overflow: hidden;
}
$('.btn1').click(function(){
$('.menu').addClass('on');
$('body').addClass('hidden')
})
$('close').click(function(){
$('.menu').removeClass('on');
$('body').removeClass('hidden);
})
body.hidden .dimmed{
opacity: 0.5;
visibility: visible;
}
$('.btn1').click(function(){
$('.menu').addClass('on');
$('body').addClass('hidden')
})
$('close,dimmed').click(function(){
$('.menu').removeClass('on');
$('body').removeClass('hidden);
})
ex) 아래의 네이버 페이지와 같이, 쇼핑탭을 누르면 쇼핑 컨텐츠 , 맨즈 탭을 누르면 맨즈 컨텐츠가 나오게 하기
<ul class="tab-list">
<li class="tab-item">
<a href="" data-tab="#tab1">엔터</a>
</li>
<li class="tab-item">
<a href="" data-tab="#tab2">스포츠</a>
</li>
<li class="tab-item">
<a href="" data-tab="#tab3">경제</a>
</li>
</ul>
<div class="tab-cont">
<div id="tab1" class="cont on">엔터 내용</div>
<div id="tab2" class="cont">스포츠 내용</div>
<div id="tab3" class="cont">경제 내용</div>
</div>