์ƒˆ์†Œ์‹

Languages/Java Script

[Js] ์‹๋ณ„์ž API | ์กฐํšŒ API | ์†์„ฑ API

  • -
๋ฐ˜์‘ํ˜•

๋ชจ๋“  ํฌ์ŠคํŒ…์€ ์ธํ”„๋Ÿฐ [์ƒํ™œ์ฝ”๋”ฉ] ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ๊ฐ•์˜์˜ ๋‚ด์šฉ์„ ๋‹ด๊ณ  ์žˆ์œผ๋ฉฐ

์ถœ์ฒ˜๋Š” ์•„๋ž˜์˜ ์ฃผ์†Œ๋กœ "egoing Lee"๋‹˜์˜ ์ž๋ฃŒ์ž…๋‹ˆ๋‹ค. 

์ƒ์—…์ ์ธ ์˜๋„๊ฐ€ ์•„๋‹Œ ๊ณต๋ถ€ํ•œ ๊ฒƒ์„ ์ •๋ฆฌํ•ด๋†“๋Š” ๋ชฉ์ ์œผ๋กœ ํฌ์ŠคํŒ… ํ•œ ๊ฒƒ์ž…๋‹ˆ๋‹ค.

 

www.inflearn.com/course/javascript-%EC%9E%90%EB%B0%94%EC%8A%A4%ED%81%AC%EB%A6%BD%ED%8A%B8-%EA%B0%95%EC%A2%8C#

 

์›น๋ธŒ๋ผ์šฐ์ € Javascript (์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ) - ์ธํ”„๋Ÿฐ

์ƒํ™œ์ฝ”๋”ฉ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ๊ฐ•์ขŒ ์ž…๋‹ˆ๋‹ค. ์›น๋ธŒ๋ผ์šฐ์ €๋ฅผ ์ง์ ‘ ์ œ์–ดํ•  ์ˆ˜ ์žˆ๋Š” ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ๋ ˆํผ๋Ÿฐ์Šค๋ฅผ ๊ณต๋ถ€ํ•ด ๋ด…๋‹ˆ๋‹ค. ์ดˆ๊ธ‰ ์›น ๊ฐœ๋ฐœ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด JavaScript ์˜จ๋ผ์ธ ๊ฐ•์˜ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ๊ฐ•์ขŒ

www.inflearn.com


 

์ด๋ฒˆ ํฌ์ŠคํŒ…์€ ๊ฐ•์˜์˜ "Element ๊ฐ์ฒด" ์ค‘ ์‹๋ณ„์ž API, ์กฐํšŒ API, ์†์„ฑ API ๊ฐ•์˜๋ฅผ ๋ชจ๋‘ ํฌํ•จํ•˜์—ฌ ์ž‘์„ฑํ•˜์˜€์Šต๋‹ˆ๋‹ค.



์‹๋ณ„์ž API

์—˜๋ฆฌ๋จผํŠธ๋ฅผ ์ œ์–ดํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” ๊ทธ ์—˜๋ฆฌ๋จผํŠธ๋ฅผ ์กฐํšŒํ•˜๊ธฐ ์œ„ํ•œ ์‹๋ณ„์ž๊ฐ€ ํ•„์š”ํ•˜๋‹ค. ๋ณธ ์ˆ˜์—…์—์„œ๋Š” ์‹๋ณ„์ž API๋“ค์— ๋Œ€ํ•ด์„œ ์•Œ์•„๋ณด์ž.

HTML์—์„œ ์—˜๋ฆฌ๋จผํŠธ์˜ ์ด๋ฆ„๊ณผ id ๊ทธ๋ฆฌ๊ณ  class๋Š” ์‹๋ณ„์ž๋กœ ์‚ฌ์šฉ๋œ๋‹ค. ์‹๋ณ„์ž API๋Š” ์ด ์‹๋ณ„์ž๋ฅผ ๊ฐ€์ ธ์˜ค๊ณ  ๋ณ€๊ฒฝํ•˜๋Š” ์—ญํ• ์„ ํ•œ๋‹ค.

 

 

 

Element.tagName

ํ•ด๋‹น ์—˜๋ฆฌ๋จผํŠธ์˜ ํƒœ๊ทธ ์ด๋ฆ„์„ ์•Œ์•„๋‚ธ๋‹ค. ํƒœ๊ทธ ์ด๋ฆ„์„ ๋ณ€๊ฒฝํ•˜์ง€๋Š” ๋ชปํ•œ๋‹ค.(์ฆ‰ ์ฝ๊ธฐ ์ „์šฉ์ž„ ๋ณ€๊ฒฝํ•ด๋„ ๋‹ค์‹œ ๋Œ์•„์˜ด)

 

<ul>
    <li>html</li>
    <li>css</li>
    <li id="active" class="important current">JavaScript</li>
</ul>
<script>
console.log(document.getElementById('active').tagName)
</script>

 

Element.id

๋ฌธ์„œ์—์„œ id๋Š” ๋‹จ ํ•˜๋‚˜๋งŒ ๋“ฑ์žฅํ•  ์ˆ˜ ์žˆ๋Š” ์‹๋ณ„์ž๋‹ค. ์•„๋ž˜ ์˜ˆ์ œ๋Š” id์˜ ๊ฐ’์„ ์ฝ๊ณ  ๋ณ€๊ฒฝํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ๋ณด์—ฌ์ค€๋‹ค.

<ul>
    <li>html</li>
    <li>css</li>
    <li id="active">JavaScript</li>
</ul>
<script>
var active = document.getElementById('active');
console.log(active.id);
active.id = 'deactive';
console.log(active.id);
</script>

 

์œ„์ฒ˜๋Ÿผ ์ž…๋ ฅํ•˜๋ฉด id๊ฐ’์ด active์—์„œ deactive๋กœ ๋ณ€๊ฒฝ๋œ๋‹ค. ์ฝ˜์†”์ฐฝ์œผ๋กœ ์ถœ๋ ฅํ•ด๋ณด๋ฉด ๋ฐ”๋€ ๊ฒฐ๊ณผ๊ฐ€ ์ถœ๋ ฅ๋œ๋‹ค.

 

Element.className

ํด๋ž˜์Šค๋Š” ์—ฌ๋Ÿฌ๊ฐœ์˜ ์—˜๋ฆฌ๋จผํŠธ๋ฅผ ๊ทธ๋ฃนํ•‘ํ•  ๋•Œ ์‚ฌ์šฉํ•œ๋‹ค. ์ด ๋งค์†Œ๋“œ ๋ณด๋‹ค๋Š” ์•„๋ž˜ ํ‘œํ˜„์„ ๋” ๋งŽ์ด ์“ด๋‹ค.

<ul>
    <li>html</li>
    <li>css</li>
    <li id="active">JavaScript</li>
</ul>
<script>
var active = document.getElementById('active');
// class ๊ฐ’์„ ๋ณ€๊ฒฝํ•  ๋•Œ๋Š” ํ”„๋กœํผํ‹ฐ์˜ ์ด๋ฆ„์œผ๋กœ className์„ ์‚ฌ์šฉํ•œ๋‹ค.
active.className = "important current";
console.log(active.className);
// ํด๋ž˜์Šค๋ฅผ ์ถ”๊ฐ€ํ•  ๋•Œ๋Š” ์•„๋ž˜์™€ ๊ฐ™์ด ๋ฌธ์ž์—ด์˜ ๋”ํ•œ๋‹ค.
active.className += " readed"
</script>

์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ์—์„œ ์˜ˆ์•ฝ์–ด์ธ ๊ฒฝ์šฐ์—” html ์†์„ฑ์ด๋ฆ„๊ณผ ํ”„๋กœํผํ‹ฐ ์ด๋ฆ„์ด ์ผ์น˜ํ•˜์ง€ ์•Š๋Š” ๊ฒฝ์šฐ๊ฐ€ ๋งŽ๋‹ค. 

 

 

Element.classList

className์— ๋น„ํ•ด์„œ ํ›จ์”ฌ ํŽธ๋ฆฌํ•œ ์‚ฌ์šฉ์„ฑ์„ ์ œ๊ณตํ•œ๋‹ค. (ํŽธ๋ฆฌํ•œ๋งŒํผ ์‚ฌ์šฉํ•˜๊ธฐ๊ฐ€ ์ข€ ๊นŒ๋‹ค๋กœ์›€)

<ul>
    <li>html</li>
    <li>css</li>
    <li id="active" class="important current">JavaScript</li>
</ul>
<script>
function loop(){
    for(var i=0; i<active.classList.length; i++){
        console.log(i, active.classList[i]);
    }
}
// ํด๋ž˜์Šค๋ฅผ ์ถ”๊ฐ€
</script>
<input type="button" value="DOMTokenList" onclick="console.log(active.classList);" />
<input type="button" value="์กฐํšŒ" onclick="loop();" />
<input type="button" value="์ถ”๊ฐ€" onclick="active.classList.add('marked');" />
<input type="button" value="์ œ๊ฑฐ" onclick="active.classList.remove('important');" />
<input type="button" value="ํ† ๊ธ€" onclick="active.classList.toggle('current');" />

 

classList๋ฅผ ํ†ตํ•ด add, remove๊ฐ€ ๊ฐ€๋Šฅํ•˜๊ณ , ์žˆ์„ ๋•Œ ์—†์• ๊ณ  ์—†์„ ๋• ์ƒ๊ธฐ๊ฒŒ ํ•˜๊ณ  ์‹ถ๋‹ค๋ฉด toggle์„ ์‚ฌ์šฉํ•˜๋ฉด ๋œ๋‹ค.

์ž์„ธํ•œ ๋‚ด์šฉ์€ ์•„๋ž˜ ์˜์ƒ์„ ์ฐธ๊ณ ํ•ด์„œ ๋‹ค์‹œ ํ•œ๋ฒˆ ์‚ดํŽด๋ณด๋„๋ก ํ•˜์ž!

 

www.youtube.com/watch?v=9XyowP9VjDo&feature=youtu.be


 

์กฐํšŒ API

์ง€๊ธˆ๊นŒ์ง€ document.getElementsBy* ๋ฉ”์†Œ๋“œ๋ฅผ ํ†ตํ•ด์„œ ์—˜๋ฆฌ๋จผํŠธ๋ฅผ ์กฐํšŒํ–ˆ๋‹ค. document ๊ฐ์ฒด๋Š” ๋ฌธ์„œ ์ „์ฒด๋ฅผ ์˜๋ฏธํ•˜๋Š” ์—˜๋ฆฌ๋จผํŠธ์ด๊ธฐ ๋•Œ๋ฌธ์— document์˜ ์กฐํšŒ ๋ฉ”์†Œ๋“œ๋Š” ๋ฌธ์„œ ์ „์ฒด๋ฅผ ๋Œ€์ƒ์œผ๋กœ ์—˜๋ฆฌ๋จผํŠธ๋ฅผ ์กฐํšŒํ•œ๋‹ค.

 

Element ๊ฐ์ฒด ์—ญ์‹œ๋„ getElementsBy* ์—˜๋ฆฌ๋จผํŠธ๋ฅผ ๊ฐ€์ง€๊ณ  ์žˆ๋Š”๋ฐ Element ๊ฐ์ฒด์˜ ์กฐํšŒ ๋ฉ”์†Œ๋“œ๋Š” ํ•ด๋‹น ์—˜๋ฆฌ๋จผํŠธ์˜ ํ•˜์œ„ ์—˜๋ฆฌ๋จผํŠธ๋ฅผ ๋Œ€์ƒ์œผ๋กœ ์กฐํšŒ๋ฅผ ์ˆ˜ํ–‰ํ•œ๋‹ค.

<!DOCTYPE html>
<html>
<head>
	<title> Object ํ™•์žฅ</title>
</head>
<body>
<ul>
	<li class = "marked">html</li>
	<li>css</li>
	<li id="active">Javascript
		<ul>
			<li>JavaScript Core</li>	
			<li class="marked">DOM</li>
			<li class="marked">BOM</li>
		</ul>
	</li>
</ul>
<script>
	var list = document.getElementsByClassName('marked');
	console.group('document');//๊ทธ๋ฃน document
	for(var i = 0; i<list.length; i++){
		console.log(list[i].textContent);
	}
	console.groupEnd(); //document๊ทธ๋ฃน ๋ 

	console.group('active'); //๊ทธ๋ฃน์ด๋ฆ„ 
	var active = document.getElementById('active'); //active๋ผ๋Š” ๊ฐ์ฒด๋กœ ๋‹ด์Œ. ์ฆ‰ ์—ฌ๊ธฐ์— ํ•ด๋‹นํ•˜๋Š” ํ•˜์œ„๋งŒ list์— ๋‹ด๊ธฐ๊ฒŒ ๋จ 
	var list = active.getElementsByClassName('marked');//active๊ฐ์ฒด์˜ ํ•˜์œ„ ๊ฐ์ฒด๋“ค ์ค‘ class๊ฐ€ marked์ธ ๊ฒƒ!
	for(var i = 0; i<list.length; i ++){
		console.log(list[i].textContent);
	}
	console.groupEnd();
</script>
	
</body>
</html>

 

์‹คํ–‰๊ฒฐ๊ณผ

 

document๊ฐ์ฒด์˜ getElement.. ์™€ element ๊ฐ์ฒด์˜ getElement ..๊ฐ€ ๋‹ค๋ฅด๊ฒŒ ์ถœ๋ ฅ๋˜๋Š” ๊ฒƒ์„ ํ™•์ธ ํ•  ์ˆ˜ ์žˆ๋‹ค.

 

์ฆ‰ document.getElementsByClassName์œผ๋กœ ์กฐํšŒ๋ฅผ ํ•˜๋ฉด ์ „์ฒด ๋ฌธ์„œ์—์„œ ์กฐํšŒ๊ฐ€ ๋˜๋Š” ๊ฒƒ์ด๊ณ ,

ํŠน์ •ํ•œ element์˜ getElements ๋ฉ”์†Œ๋“œ๋ฅผ ์‚ฌ์šฉํ•˜๊ฒŒ ๋˜๋ฉด ๊ทธ ๊ฐ์ฒด์˜ ํ•˜์œ„ ์—˜๋ฆฌ๋จผํŠธ๋“ค๋งŒ ์กฐํšŒํ•˜๊ฒŒ ๋˜๋Š” ๊ฒƒ์ด๋‹ค.


์†์„ฑ API

์†์„ฑ์€ HTML์—์„œ ํƒœ๊ทธ๋ช…๋งŒ์œผ๋กœ๋Š” ๋ถ€์กฑํ•œ ๋ถ€๊ฐ€์ ์ธ ์ •๋ณด๋ผ๊ณ  ํ•  ์ˆ˜ ์žˆ๋‹ค. ์ด ์†์„ฑ์„ ์–ด๋–ป๊ฒŒ ์ œ์–ดํ•˜๋Š”๊ฐ€ ์•Œ์•„๋ณด์ž.

์†์„ฑ์„ ์ œ์–ดํ•˜๋Š” API๋Š” ์•„๋ž˜์™€ ๊ฐ™๋‹ค. ๊ฐ๊ฐ์˜ ๊ธฐ๋Šฅ์€ ์ด๋ฆ„์„ ํ†ตํ•ด์„œ ์ถฉ๋ถ„ํžˆ ์œ ์ถ”ํ•  ์ˆ˜ ์žˆ์„ ๊ฒƒ์ด๋‹ค.

 

  • Element.getAttribute(name)
  • Element.setAttribute(name, value)
  • Element.hasAttribute(name); //ํ•ด๋‹นํ•˜๋Š” ์†์„ฑ ๊ฐ’์ด ์žˆ๋Š”์ง€ ์—†๋Š”์ง€ ์—ฌ๋ถ€๋ฅผ ์•Œ๋ ค์คŒ.
  • Element.removeAttribute(name);
<a id="target" href="http://opentutorials.org">opentutorials</a>
<script>
var t = document.getElementById('target');
console.log(t.getAttribute('href')); //http://opentutorials.org
t.setAttribute('title', 'opentutorials.org'); // title ์†์„ฑ์˜ ๊ฐ’์„ ์„ค์ •ํ•œ๋‹ค.
console.log(t.hasAttribute('title')); // true, title ์†์„ฑ์˜ ์กด์žฌ์—ฌ๋ถ€๋ฅผ ํ™•์ธํ•œ๋‹ค.
t.removeAttribute('title'); // title ์†์„ฑ์„ ์ œ๊ฑฐํ•œ๋‹ค.
console.log(t.hasAttribute('title')); // false, title ์†์„ฑ์˜ ์กด์žฌ์—ฌ๋ถ€๋ฅผ ํ™•์ธํ•œ๋‹ค.
</script>

 

๊ฐ’์„ ๋ณ€์ˆ˜๋กœ ๋‹ด์•„์„œ ๊ฐ์ฒด์— ํ•ด๋‹นํ•˜๋Š” ๊ฐ’์„ get๋ฉ”์†Œ๋“œ๋ฅผ ํ†ตํ•ด ๊ฐ€์ ธ์˜ฌ ์ˆ˜๋„ ์žˆ๊ณ , set ๋ฉ”์†Œ๋“œ๋ฅผ ์ด์šฉํ•ด์„œ ์†์„ฑ์— ํ•ด๋‹นํ•˜๋Š” ๊ฐ’์„ ๋ณ€๊ฒฝํ•  ์ˆ˜๋„ ์žˆ๋‹ค.

 

 

์†์„ฑ๊ณผ ํ”„๋กœํผํ‹ฐ

์†์ƒ๊ณผ ํ”„๋กœํผํ‹ฐ๋Š” ์กฐ๊ธˆ ์ฐจ์ด๊ฐ€ ์žˆ๋‹ค. ์–ด๋– ํ•œ ์ฐจ์ด๊ฐ€ ์žˆ๋Š”์ง€ ์•Œ์•„๋ณด๋„๋ก ํ•˜์ž.

๋ชจ๋“  ์—˜๋ฆฌ๋จผํŠธ์˜ (HTML)์†์„ฑ์€ (JavaScript ๊ฐ์ฒด์˜) ์†์„ฑ๊ณผ ํ”„๋กœํผํ‹ฐ๋กœ ์ œ์–ด๊ฐ€ ๊ฐ€๋Šฅํ•˜๋‹ค. ์˜ˆ์ œ๋ฅผ ๋ณด์ž.

<p id="target">
    Hello world
</p>
<script>
    var target = document.getElementById('target');
    // attribute ๋ฐฉ์‹์ž„. attribute์— ์ ‘๊ทผ ํ•˜๋Š” ๊ฒƒ์ด ์†์„ฑ๋ฐฉ์‹!
    target.setAttribute('class', 'important');
    // property ๋ฐฉ์‹
    target.className = 'important';
</script>

setAttribute('class', 'important')์™€ className = 'important'๋Š” ๊ฐ™์€ ๊ฒฐ๊ณผ๋ฅผ ๋งŒ๋“ ๋‹ค.

 

ํ•˜์ง€๋งŒ ์ „์ž๋Š” attribute ๋ฐฉ์‹(์†์„ฑ์ด๋ผ๊ณ  ๋ถ€๋ฅด๊ฒ ๋‹ค)์ด๊ณ  ํ›„์ž๋Š” property ๋ฐฉ์‹์ด๋‹ค. property ๋ฐฉ์‹์€ ์ข€ ๋” ๊ฐ„ํŽธํ•˜๊ณ  ์†๋„๋„ ๋น ๋ฅด์ง€๋งŒ ์‹ค์ œ html ์†์„ฑ์˜ ์ด๋ฆ„๊ณผ ๋‹ค๋ฅธ ์ด๋ฆ„์„ ๊ฐ–๋Š” ๊ฒฝ์šฐ๊ฐ€ ์žˆ๋‹ค. ๊ทธ๊ฒƒ์€ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ์˜ ์ด๋ฆ„ ๊ทœ์น™ ๋•Œ๋ฌธ์ด๋‹ค.

 

ํ”„๋กœํผํ‹ฐ ๋ฐฉ์‹์˜ ๊ฒฝ์šฐ ๋ช‡๊ฐ€์ง€ ์˜ˆ์™ธ๊ฐ€ ์žˆ๊ธฐ ๋•Œ๋ฌธ์— ๊ธฐ์–ตํ•˜๊ณ  ์‚ฌ์šฉํ•ด์•ผ ํ•œ๋‹ค.

 

์‹ฌ์ง€์–ด ์†์„ฑ๊ณผ ํ”„๋กœํผํ‹ฐ๋Š” ๊ฐ’์ด ๋‹ค๋ฅผ์ˆ˜๋„ ์žˆ๋‹ค. ์•„๋ž˜ ์ฝ”๋“œ๋ฅผ ์‹คํ–‰ํ•œ ๊ฒฐ๊ณผ๋Š” ์†์„ฑ๊ณผ ํ”„๋กœํผํ‹ฐ์˜ ๊ฐ’์ด ๊ผญ ๊ฐ™์€ ๊ฒƒ์€ ์•„๋‹ˆ๋ผ๋Š” ๊ฒƒ์„ ๋ณด์—ฌ์ค€๋‹ค.

<a id="target" href="./demo1.html">ot</a>
<script>
//ํ˜„์žฌ ์›นํŽ˜์ด์ง€๊ฐ€ http://localhost/webjs/Element/attribute_api/demo3.html ์ผ ๋•Œ 
var target = document.getElementById('target');
// http://localhost/webjs/Element/attribute_api/demo1.html 
console.log('target.href', target.href);
// ./demo1.html 
console.log('target.getAttribute("href")', target.getAttribute("href"));
</script>

 

๋ฏธ๋ฌ˜ํ•˜๊ฒŒ ๋‹ค๋ฅธ ๋ฌธ์ œ๋“ค์ด ์žˆ์œผ๋‹ˆ, ๊ฐ๊ฐ ์ƒํ™ฉ์— ๋งž๊ฒŒ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ด ์ข‹์€ ๋ฐฉ๋ฒ•์ด๋‹ค.

๋ฐ˜์‘ํ˜•
Contents

ํฌ์ŠคํŒ… ์ฃผ์†Œ๋ฅผ ๋ณต์‚ฌํ–ˆ์Šต๋‹ˆ๋‹ค

์ด ๊ธ€์ด ๋„์›€์ด ๋˜์—ˆ๋‹ค๋ฉด ๊ณต๊ฐ ๋ถ€ํƒ๋“œ๋ฆฝ๋‹ˆ๋‹ค.