일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- #파이썬
- Python
- 나라여행
- 비쥬얼스튜디오코드설치
- 일본
- 일본여행
- input
- 혼공파선택미션
- 파이썬혼자공부하기
- 파이썬혼공
- input style
- 혼공파
- 비쥬얼스튜디오코드
- 혼공파미션
- 나라 사슴
- 혼자여행
- 혼공단
- 조건문
- 일본 나라
- 일본 사슴
- 파이썬
- hover style
- 일본나라여행
- 파이썬문자열
- 파이썬조건문
- 호버스타일
- 혼자공부하는파이썬
- 한빛미디어
- 파이썬공부
- 일본 관광
- Today
- Total
Eveningstar
[jQuery -> javascript] 제이쿼리대신 자바스크립트 사용하기 본문
You Don't Need jQuery!
의 글을 보고 필요한 부분을 옮겨적었을 뿐이니 원문을 읽고싶다면
아래 주소로
https://blog.garstasio.com/you-dont-need-jquery/
+ 추가 You Might Not Need jQuery http://youmightnotneedjquery.com/
1. Selecting Elements
- 제이쿼리의 dom 조작과 traversing 셀렉터들을 javascript로 변경해서 사용한다면 어떻게 사용해야할까 고민될때가 많다.
1) id / querySelector() -> ie8 이상에서 쓰인다
$('#idName') => document.querySelector('#idName')
querySelector()
2) class / querySelectorAll()
$('.className') => document.querySelectorAll('.className')
querySelectorAll()
3) tagName /querySelectorAll()
$('input') => document.querySelectorAll('input')
4) 가상 선택 pseudo-class / querySelectorAll()
$('.className:hover') => document.querySelectorAll('.className:hover')
5) 속성선택 / Attribute / querySelectorAll()
$('[data-foo-bar="someval"]') => document.querySelectorAll('[data-foo-bar="someval"]')
*** ie 적용을 위해서는 getAttribute(), setAttribute() 사용할것
document.querySelector('.className').getAttribute('data-list-id');
6) .children() / .children
$('.parent').children() => document.getElementById('.parent').children;
7) 자손선택 / querySelectorAll()
만능...... "querySelectorAll()"
1. create element
jquery는 create element보다 add element에 더 가까움,
append(), prepend(), after(), before() 메소드를 사용해서 지정 클래스의 앞 뒤로 element를 생성해줌,
자바스크립트의 경우 => document.createElement('div');
2. inserting elements Before & after
[html] <div id="s1"></div> <div id="s2"></div>
|
after [html] <div id="s1"></div> <div id="s1_1"></div> <div id="s2"></div>
|
2-1) before()
jquery
$("#s2").after("<div id="s1_1"></div>"); |
javascript / insertAdjacentHTML()
document.getElementById("s2").insertAdjacentHTML('beforebegin', '<div id="s1_1"></div>'); |
2-2) after()
jquery
$("#s1").after("<div id="s1_1"></div>"); |
javascript / insertAdjacentHTML()
document.getElementById("s1").insertAdjacentHTML('afterend', '<div id="s1_1"></div>'); |
3. inserting elements as Children
[html] <div id="parent"> <div id="oldChild"></div> </div>
|
[after html] <div id="parent"> <div id="newChild"></div> <div id="oldChild"></div> </div>
|
3-1) prepend()
jquery
$("#parent").prepend("<div id="newChild"></div>"); |
javascript / insertAdjacentHTML()
document.getElementById("parent").insertAdjacentHTML('afterbegin', '<div id="newChild"></div>'); |
[html] <div id="parent"> <div id="oldChild"></div> </div>
|
[after html] <div id="parent"> <div id="oldChild"></div> <div id="newChild"></div> </div>
|
3-2) append()
jquery
$("#parent").append("<div id="newChild"></div>"); |
javascript / insertAdjacentHTML()
document.getElementById("parent").insertAdjacentHTML('beforeend', '<div id="s1_1"></div>'); |
4. relocate element
4-1)
[html] <div id="parent"> <div id="c1"></div> </div> <div id="move"></div>
|
[after html] <div id="parent"> <div id="c1"></div> <div id="move"></div> </div>
|
jquery / append()
$("#parent").append($('#move')); |
javascript / appendChild()
document.getElementById("parent").appendchild(document.getElementById('move')); |
4-2)
[html] <div id="parent"> <div id="c1"></div> </div> <div id="move"></div>
|
[after html] <div id="parent"> <div id="move"></div> <div id="c1"></div> </div>
|
jquery / prepend()
$("#parent").append($('#move')); |
javascript / insertBefore()
document.getElementById("parent").insertBefore(document.getElementById('move'), document.getElementById('c1')); |
5. remove element
jquery => $('#foobar').remove();
javascript => document.getElementById('foobar').parentNode.removeChild(document.getElmentById('foobar'));
6. addClass()
jquery => $('#foobar').addClass('addClass');
javascript =>
1) ie 10 이상(with the exception of ie9)
document.getElementById('foobar').classList.add('addClass');
2) ie 10 이하
document.getElementById('foobar').className += 'addClass';
7. removeClass()
jquery => $('#foobar').removeClass('addClass');
javascript =>
1) ie 10 이상
document.getElementById('foobar').classList.remove('addClass');
2) ie 10 이하
document.getElementById('foobar').className.replace(/^addClass$/, '');
8. add&changing Text content
jquery => $('#foobar').text('goodbye');
javascript =>
1) ie 9이하
document.getElementById('foobar').innerHTML = 'goodbye';
2) ie 9이상
document.getElementById('foobar').textContent = 'goodbye';
9. css
jquery => $('#foobar').css('fontWeight', 'bold');
javascript => document.getElementById('note').style.fontWeight = "bold";
=> style.속성명
10 . EVENT
[ native dom event ->> https://developer.mozilla.org/en-US/docs/Web/Events / https://www.w3schools.com/jsref/dom_obj_event.asp ]
10-1) .click() / .addEventListener('click', function() {}
jquery => $(someElement).on('click', function(){}
javasctipt => someElement.addEventListener('click', function() {}
10-2) .off() / removeEventLisner('이벤트명', 'handler')
jquery => $('some-element').off('click', myEventHandler);
javasctipt => someElement.removeEventListener('click', myEventHandler);
10-3) .on() / addEventListener
jquery => $(someEl).on('some-event', function(event) {}
javasctipt => someEl.addEventListener('some-event', function(event) {}
[ .addEventListener('이벤트명', function(){}); ]
'Javascript' 카테고리의 다른 글
[input]3단위에 콤마(,)찍기 (0) | 2018.09.27 |
---|---|
[유효성검사]정규표현식활용 (1) | 2018.09.27 |
[input]input에 한글이 입력안되게 하고 싶을때, 숫자만 입력되게 (0) | 2018.07.05 |
[기초 문법] 무언가를 실행하고 싶을 때 (0) | 2018.05.27 |
함수 (0) | 2017.07.17 |