getElementById ์™€ querySelector ๋น„๊ต

๐Ÿ“„ getElementById ์™€ querySelector ๋น„๊ต

getElementById์™€ querySelector์˜ ๊ณตํ†ต์ ์€ ์—˜๋ฆฌ๋จผํŠธ๋ฅผ ๊ฒ€์ƒ‰ํ•ด์„œ ๋ฐ˜ํ™˜ํ•œ๋‹ค๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.

ํ•˜์ง€๋งŒ ๋‘˜์˜ ์‚ฌ์šฉ๋ฒ•์€ ๋‹ค๋ฅด๋ฉฐ ์‚ฌ์šฉํ•˜๋Š” ์ƒํ™ฉ์—์„œ ์ฐจ์ด์ ์„ ๋“œ๋Ÿฌ๋ƒ…๋‹ˆ๋‹ค.

๐Ÿ“„ getElementById์™€ querySelector์˜ ์ฐจ์ด์ 

getElementById

  • id๋ฅผ ํ†ตํ•ด ์—˜๋ฆฌ๋จผํŠธ๋ฅผ ๋ฐ˜ํ™˜ํ•œ๋‹ค.
  • ๋งŒ์•ฝ document์— ํ•ด๋‹น id๊ฐ€ ์—†๋‹ค๋ฉด null์„ ๋ฐ˜ํ™˜ํ•œ๋‹ค.

querySelector

  • selector์˜ ๊ตฌ์ฒด์ ์ธ ๊ทธ๋ฃน๊ณผ ์ผ์น˜ํ•˜๋Š” document์˜ ์ฒซ๋ฒˆ์งธ ์—˜๋ฆฌ๋จผํŠธ๋ฅผ ๋ฐ˜ํ™˜ํ•œ๋‹ค.
  • ์ผ์น˜ํ•˜๋Š” ์š”์†Œ๊ฐ€ ์—†๋‹ค๋ฉด null์„ ๋ฐ˜ํ™˜ํ•œ๋‹ค.

โœ” ์˜ˆ์‹œ

<form id="userForm">
  <input id="username" type="text" value="Guilherme">
</form>

getElementById๋กœ username์„ ๊ฐ€์ ธ์˜ฌ ๋•Œ:

var username = document.getElementById("username");

querySelector๋กœ username์„ ๊ฐ€์ ธ์˜ฌ ๋•Œ:

var username = document.querySelector("#userForm #username");

=> ๊ฒฐ๊ณผ๋Š” ๊ฐ™์ง€๋งŒ querySelector๋กœ ๊ฐ€์ ธ์˜ฌ ๋•Œ ๋” ๊ตฌ์ฒด์ ์ด๊ณ  ํ•œ์ •์ ์ด๋‹ค.

๐Ÿ“„ querySelectorAll vs selectElementByClassName

ํ•˜๋‚˜๊ฐ€ ์•„๋‹ˆ๋ผ ์—ฌ๋Ÿฌ๊ฐœ์˜ ์š”์†Œ๋ฅผ ํ•˜๋‚˜์˜ ์ด๋ฆ„์œผ๋กœ ํ•œ๋ฒˆ์— ์–ป๊ณ  ์‹ถ์„ ๋•Œ ์‚ฌ์šฉํ•˜๋Š” ๋ฐฉ๋ฒ•์ด๋‹ค.

โœ” ์˜ˆ์‹œ

<form id="productForm">
  <input id="productOne" class="product" type="text" value="Product 1" />
  <input id="productTwo" class="product" type="text" value="Product 1" />
  <input id="productThree" class="product" type="text" value="Product 1" />
</form>

getElementByClassName์œผ๋กœ ๊ฐ€์ ธ์˜ฌ ๋•Œ: HTMLCollection์— ๋ฆฌํ„ด

var products = document.getElementByClassName("product");

querySelectorAll๋กœ ๊ฐ€์ ธ์˜ฌ ๋•Œ: NodeList์— ๋ฆฌํ„ด

var products = document.querySelectorAll("#productForm .product");

๋‘˜๋‹ค ์ธ๋ฑ์Šค๋ฅผ ์ œ๊ณตํ•ด ์ธ๋ฑ์Šค ๋ฒˆํ˜ธ๋กœ ์ ‘๊ทผ์ด ๊ฐ€๋Šฅํ•˜์ง€๋งŒ, HTMLCollectionํ•ญ๋ชฉ์€ name๊ณผ id์†์„ฑ์œผ๋กœ๋„ ์ ‘๊ทผํ•  ์ˆ˜ ์žˆ๋‹ค.


์—˜๋ฆฌ๋จผํŠธ์— ์ ‘๊ทผํ•  ๋•Œ ๋ฐฉ๋ฒ•์ด ๋‘๊ฐ€์ง€๊ฐ€ ์žˆ์–ด ์–ด๋–ค ์ƒํ™ฉ์— ์–ด๋Š ๊ฒƒ์„ ์‚ฌ์šฉํ•˜๋Š”์ง€ ๊ถ๊ธˆํ•ด์„œ ์ •๋ฆฌ๋ฅผ ์‹œ์ž‘ํ–ˆ๋‹ค.

๊ตฌ์ฒด์ ์œผ๋กœ ์—˜๋ฆฌ๋จผํŠธ๋ฅผ ์„ ํƒํ•˜๊ณ  ์‹ถ๋‹ค๋ฉด querySelector๋ฅผ,

์ข€๋” ๋น ๋ฅธ ์„ฑ๋Šฅ์œผ๋กœ ์ ‘๊ทผํ•˜๊ณ  ์‹ถ๋‹ค๋ฉด getElementById๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ด ์ข‹๋‹ค.

์ถœ์ฒ˜

*guinatal.github - qeurySelector vs getElementById

Leave a comment