자바스크립트/팁
DOM 엘리먼트에 Array Prototype 내장 함수 이용하는 방법
Jake Seo
2022. 12. 24. 23:02
DOM 엘리먼트에 Array
내장 함수를 이용하는 방법
<div>a</div>
<div>b</div>
<div>c</div>
위와 같이 HTML 에 3 개의 div
가 있을 때, 모든 div
를 잡아서 내용이 b
인것만 남기고 싶다고 해보자.
const divs = document.querySelectorAll("div");
divs.filter((e) => e.textContent === "b");
// Uncaught TypeError: divs.filter is not a function"
위와 같이 filter
메서드를 사용하면 편할 것 같은데, 바로 사용이 되지는 않는다.
const divs = document.querySelectorAll("div");
const filtered = Array.prototype.filter.call(
divs,
(e) => e.textContent === "b"
);
console.log(filtered); // [[object HTMLDivElement]]
Function.prototype.call
, Function.prototype.apply
, Function.prototype.bind
와 같이 this
를 바인딩하는 메서드를 이용하면 된다.
반응형