[JavaScript] How to select all tag elements with JS

 

[Question] 

I have a question about how to select all tag elements in HTML page with JavaScript and apply an Event listener to them.

With jQuery we can do like this

$('td').on('click', function(){...});

But how can I do it with pure JavaScript? I have this code:

const el = document.getElementsByTagName('td');
el.addEventListener("click", function(){

    let cellColor = document.getElementById("colorPicker").value;
    this.backgroundColor = cellColor;
});

But this gives an error in console:

Uncaught TypeError: el.addEventListener is not a function at makeGrid (designs.js:34) at designs.js:42

 

 

[Answer] 

getElementsByTagName() returns collection. You have to iterate over all the element to add the event:

Try with querySelectorAll() and forEach():

const el = document.querySelectorAll('td');
el.forEach(function(td){
  td.addEventListener("click", function(){
    let cellColor = document.getElementById("colorPicker").value;
    this.style.backgroundColor = cellColor;
  });
});

Please Note: querySelectorAll() is supported by all the modern browsers. Some older browsers does not support it.

Try the following with Array.prototype.forEach() if you want to work with older browsers:

경축! 아무것도 안하여 에스천사게임즈가 새로운 모습으로 재오픈 하였습니다.
어린이용이며, 설치가 필요없는 브라우저 게임입니다.
https://s1004games.com

 

const el = document.getElementsByTagName('td');
[].forEach.call(el, function(td){
  td.addEventListener("click", function(){
    let cellColor = document.getElementById("colorPicker").value;
    this.style.backgroundColor = cellColor;
  });
});
Cell Color: <input id="colorPicker" value="#FF5733"/>
<table>
  <tbody>
    <tr><td>11</td><td>12</td><td>13</td></tr>
    <tr><td>21</td><td>22</td><td>23</td></tr>
    <tr><td>31</td><td>32</td><td>33</td></tr>
  </tbody>
</table>

 

[출처] https://stackoverflow.com/questions/49400236/how-to-select-all-tag-elements-with-js

 

 

 

 

 

 

 

 

본 웹사이트는 광고를 포함하고 있습니다.
광고 클릭에서 발생하는 수익금은 모두 웹사이트 서버의 유지 및 관리, 그리고 기술 콘텐츠 향상을 위해 쓰여집니다.
번호 제목 글쓴이 날짜 조회 수
» [JavaScript] How to select all tag elements with JS 졸리운_곰 2024.05.18 11105
542 [HTML] DIV를 통해 일반적인 헤더를 만들어 보자. file 졸리운_곰 2024.05.18 369
541 [JavaScript] 자바스크립트 javascript 정규식 replace html 제거 태그 제거 졸리운_곰 2024.05.18 615
540 [HTML] Set display:none not working. : display : none 이 동작하지 않습니다. 졸리운_곰 2024.05.18 499
539 [JavaScript] Checking if iframe contents are loaded? : iframe 로딩 완료 이벤트 확인 졸리운_곰 2024.05.18 533
538 [HTML] How TO - Get Iframe Elements : javascript로 iframe 요소에 접근 졸리운_곰 2024.05.18 486
537 [전자상거래/쇼핑몰 개발] [카페24쇼핑몰] 상품상세 검색 file 졸리운_곰 2024.05.17 611
536 [HTML] form submit redirection 리다이렉션 없이 자기 페이지에 결과 표시 : <form> 태그의 target 속성 졸리운_곰 2024.05.17 485
535 [HTML] form submit redirection 리다이렉션 없이 자기 페이지에 결과 표시 : iframe으로 form 응답값 받기 졸리운_곰 2024.05.17 481
534 [JavaScript] 자바스크립트 DIV 보이기, 숨기기(토글) 졸리운_곰 2024.05.16 501
533 [JavaScript] [JS] XPath로 element 찾기 file 졸리운_곰 2024.05.16 495
532 [JavaScript] How to clone (and restore) a DOM subtree 졸리운_곰 2024.05.16 324
531 [JavaScript] Force-DOM-reflow-JS 졸리운_곰 2024.05.16 522
530 [JavaScript] Javascript XPath를 이용해서 Dom Element 가져오기 졸리운_곰 2024.05.15 496
529 [JavaScript] Introduction to using XPath in JavaScript 졸리운_곰 2024.05.15 504
528 [JavaScript] JavaScript :: 요소 가져오기 file 졸리운_곰 2024.05.15 579
527 [웹 어셈블리, WSAM] Persisting data with Emscripten : Emscripten으로 데이터 유지하기 졸리운_곰 2024.04.20 381
526 [웹 어셈블리, WSAM] Porting a Linux Program to Run in Browser using Emscripten : mscripten을 사용하여 브라우저에서 실행되도록 Linux 프로그램 포팅 졸리운_곰 2024.04.20 391
525 [node.js 개발] Apache Reverse Proxy 설정(아파치와 노드 연동) file 졸리운_곰 2024.03.17 300
524 [node.js 개발] PM2로 Node.js 앱 프로세스 배포하기 file 졸리운_곰 2024.03.16 405
대표 김성준 주소 : 경기 용인 분당수지 U타워 등록번호 : 142-07-27414
통신판매업 신고 : 제2012-용인수지-0185호 출판업 신고 : 수지구청 제 123호 개인정보보호최고책임자 : 김성준 sjkim70@stechstar.com
대표전화 : 010-4589-2193 [fax] 02-6280-1294 COPYRIGHT(C) stechstar.com ALL RIGHTS RESERVED