제이쿼리 index( )를 대체하는 자바스크립트 .indexOf.call( )
(25일차) 전체보기/전체닫기 편과 유사함
https://velog.io/@la_sta/25일차-제이쿼리-상단-네비-5
HTML
<div id="banner">
<div class="bannerInfo"></div> <!-- 배너 data가 나오는 영역 -->
<div class="btns"></div> <!-- 버튼 영역 -->
</div>
js 영역에 DB 나열
getElementsByClassName + item(0)
.btns 영역에 '버튼' 생성!
<div class="btns"></div> <!-- 여기에 버튼 생성 -->
① 빈 변수 btn 생성
② for-in문 : proinfo 배열 [ i ]번의 각 proNm을 '< button >< /button >' 안에 때려넣고
③ 빈 변수 btn에 집어넣음 +=
④ < div > .btns 영역에 for-in문 돌린 '버튼들' 생성!
<div class="btns"></div> <!-- 여기에 버튼 생성 -->
HTML
<div id="banner">
<div class="bannerInfo"> <!-- 배너 data가 나오는 영역 -->
<ul>
</ul> <!-- ul 추가 -->
</div>
<div class="btns"></div> <!-- 버튼 영역 -->
</div>
변수 선언하고, 실제값 < h2 >< p > 안에 때려박으면 되지+
+
.btns 영역에 버튼 생성한 것과 같이, getElementsByClassName + item(0).innerHTML
"1번 데이터 화면 출력해라" → 매개인자 num에 1 삽입
<h2> proinfo[ 1 ].proNm </h2>
<p> proinfo[ 1 ].proPrice </p>
아직은 bannerChg( 1 ); 번 데이터만 화면 출력
<script>
document.querySelectorAll('.btns button:nth-child(1)').addEventListener('click', function(){
})
</script>
"첫번째 버튼을 '클릭' 했을 때 bannerChg( 0 ); 실행하라"
"두번째 버튼을 '클릭' 했을 때 bannerChg( 1 ); 실행하라"
"세번째 버튼을 '클릭' 했을 때 bannerChg( 2 ); 실행하라"
<script>
document.querySelector('.btns button:nth-child(1)').addEventListener('click', function(){
bannerChg(0); <!-- 첫번째 버튼을 '클릭' 했을 때, bannerChg( 0 ); 실행-->
})
document.querySelector('.btns button:nth-child(2)').addEventListener('click', function(){
bannerChg(1); <!-- 두번째 버튼을 '클릭' 했을 때, bannerChg( 1 ); 실행-->
})
document.querySelector('.btns button:nth-child(3)').addEventListener('click', function(){
bannerChg(2); <!-- 세번째 버튼을 '클릭' 했을 때, bannerChg( 2 ); 실행-->
})
</script>
제이쿼리 index( )를 대체하는 자바스크립트 .indexOf.call( )
└> 제이쿼리를 쓰지 못할 경우, 자바로라도 돌려야 하니까!
제이쿼리 index( ) 예시
"나의 순번을 찾기 위해서는 부모가 몇명을 낳앗는지, 숫자를 리턴"
<script>
// 숫자를 리턴하는 함수!
function getElementIndex(element, range) { //자신의 순번을 찾기 위해서는 부모가 몇명을 낳앗는지
// 추가 //내가 몇 번째인지
if (!!range) return [].indexOf.call(element, range);
return [].indexOf.call(element.parentNode.children, element);
// 브라우저별 접근성 지키느라 return 2개 쓴 거지, 사실 식 하나임
}
</script>
.indexOf
.call( element, range )
element = 나
range