[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

 

 

 

 

 

 

 

 

본 웹사이트는 광고를 포함하고 있습니다.
광고 클릭에서 발생하는 수익금은 모두 웹사이트 서버의 유지 및 관리, 그리고 기술 콘텐츠 향상을 위해 쓰여집니다.
번호 제목 글쓴이 날짜 조회 수
31 [web개발] [jQuery] Select박스 option 값 선택하기 졸리운_곰 2021.10.20 651
30 [web개발][javascript][JQuery] textarea 값 설정및 값 가져오기 졸리운_곰 2021.10.19 440
29 [javascript][jQuery] 제이쿼리(jQuery) 선택자 - #1 file 졸리운_곰 2021.09.07 570
28 [HTML5, Javascript, Jquery] Add item from array to list when button is clicked in jQuery 졸리운_곰 2021.06.01 739
27 textarea 태그에 값을 넣고 뺄때 아니면 개행문자 '\n'이 혼란이 온다 졸리운_곰 2019.04.08 692
26 jQuery ready와 load의 차이 file 졸리운_곰 2019.03.29 733
25 How can I detect if a selector returns null? 졸리운_곰 2019.03.25 454
24 jQuery.isEmptyObject() 졸리운_곰 2019.03.24 793
23 [jQuery]요소를 추가하는 메소드(append, prepend, after, before) 졸리운_곰 2019.03.10 575
22 jQuery / Method / .text() - 선택한 요소 안의 내용을 가져오거나, 다른 내용으로 바꾸는 메서드 file 졸리운_곰 2019.03.10 582
21 How do you convert a jQuery object into a string? 졸리운_곰 2019.03.10 454
20 JQuery 오브젝트 셀렉트한 select object의 내용 확인 졸리운_곰 2019.03.10 600
19 JQuery Object 선언 : jQuery creating objects [duplicate] 졸리운_곰 2019.03.06 542
18 [제이쿼리] 태그 및 요소 삭제, Remove() file 졸리운_곰 2019.03.06 848
17 jQuery .each문(for문) 사용시 break, continue를 하려면? file 졸리운_곰 2019.03.06 742
16 jQuery / Method / .removeClass() - 선택한 요소의 클래스 값을 제거하는 메서드 file 졸리운_곰 2019.03.06 543
15 [jQuery] 선택자에 변수 넣기 졸리운_곰 2019.03.04 639
14 JQuery로 radio 버튼의 값 가져오기 : How to get the value of selected radio button in a group using jQuery 졸리운_곰 2019.01.10 532
13 Ajax replace instead of append 그리고 jquery .append(Html). 에서 class 적용 적용 졸리운_곰 2019.01.07 625
12 [jQuery] Ajax 방법 졸리운_곰 2018.08.03 655
대표 김성준 주소 : 경기 용인 분당수지 U타워 등록번호 : 142-07-27414
통신판매업 신고 : 제2012-용인수지-0185호 출판업 신고 : 수지구청 제 123호 개인정보보호최고책임자 : 김성준 sjkim70@stechstar.com
대표전화 : 010-4589-2193 [fax] 02-6280-1294 COPYRIGHT(C) stechstar.com ALL RIGHTS RESERVED