getElementsByClassName
var getElementsByClassName = function(className){
// 먼저 인자로 받는 className과 동일한 이름에 class이름을 가진 것을 찾아서
// 그 class이름과 동일한 class를 가진 것들을 빈 배열에 담아보자.
var result = []; // 빈배열 생성
function check(elements){ // elements는 class이름을 확인할 장소 ex) div , span 등등
if (elements.classList){ // 그 장소에 class를 가진 게 존재한다면
if (elements.classList.contains(className)){ // 그 클래스에 인자로 받는 className이 있으면
result.push(elements); // 빈 배열에 넣어준다.
}
}
// if( elements.hasChildNodes() ){ // 그 장소가 자식노드를 가지고 있다면
for(var i = 0 ; i < elements.childNodes.length ; i ++)
check(elements.childNodes[i]); //각 자식노드를 check함수를 재귀해서 실행
}
}
check(document.body); // 바디태그를 인자로 check함수를 재귀
return result;
}
https://developer.mozilla.org/ko/docs/Web/API/Element/classList
getObjectById
var util = {
getObjectById: function(json, id) {
for(let i = 0; i < json.length; i++){
for(let key in json[i]){
if(json[i][key]===id){
return json[i]
}
} else if(Array.isArray(json[i][key])){
return util.getObjectById(json[i][key],id)
}
}
}
}
}
'코드스테이츠(Pre)' 카테고리의 다른 글
recursion 코드 예시 (0) | 2019.06.19 |
---|---|
자바스크립트_객체지향 프로그래밍(OOP) (0) | 2019.06.13 |
자바스크립트_클로저 (0) | 2019.06.02 |
자바스크립트_함수, 프로토타입 체이닝 (0) | 2019.06.01 |
자바스크립트_데이터타입과 연산자 (0) | 2019.05.28 |