728x90

Node ? 

- JavaSciprt에서 html 모든 요소

  • window
  • document -> 문서노드
  • html -> 루트노드
  • src, width, height 속성노드 cf) <img, src, width = 400, height = 400> 

 

 

ParentNode

 

ParentNode

<!DOCTYPE html>
<head>
    <style>
        .f{
            border: 1px solid gray;
            padding: 20px;
            border-radius: 10px;
            width: 500px;
        }
    </style>
</head>
<body>
 <div class="f">
    <h1>JavaScript</h1>
    <P>
        가나다라마바사아자차카타파하
        abcdefghijklmnopqrstuvwxyz
        한글
        English
        얄리얄리얄라셩 얄라리얄라
        나랏말사미 듕귁에 달라
    </P>
    <button id="bu">클릭</button>
 </div>

<script>
    let f=document.querySelector(".f");
    let b=document.getElementById("bu");

    // 버튼 클릭시 이벤트 발생
    
    b.addEventListener('click',function(){
        this.parentNode.style.backgroundColor='gold';
        this.parentNode.style.boxShadow='0 0 20px navy';
        //parentnode  부모노드 선택
    })
</script>
</body>
</html>

 

childNode

cf) 공백을 지울때는 remove line breaks를 하고 하는게 좋다!

<!DOCTYPE html>
<head>
	<style>
	</style>
</head>
<body>
	<div class="f">  
	<h1>javascript</h1>
		<p>
			(세종=연합뉴스) 신선미 기자 = 정부가 물량 부족에 따른 가격 상승을 
			막기 위해 2030년까지 사과·배 계약재배물량을 각각 세 배, 
			1.5배로 늘리고 기후변화에 대응해 강원도에 사과 재배지를 
			2천㏊(헥타르·1만㎡) 조성하기로 했다.
		</p>
		<button id="bu">클릭</button>
	</div>
</body>
	<script>
		let f=document.querySelector(".f");
		let n=f.childNodes.length;
		f.childNodes[1].style.color='red';
	</script>

</html>

 

 

<!DOCTYPE html>
<head>
<style>
</style>
</head>
<body>
<div class="f">
<h1>javascript</h1>
<p>
(세종=연합뉴스) 신선미 기자 = 정부가 물량 부족에 따른 가격 상승을
막기 위해 2030년까지 사과·배 계약재배물량을 각각 세 배,
1.5배로 늘리고 기후변화에 대응해 강원도에 사과 재배지를
2천㏊(헥타르·1만㎡) 조성하기로 했다.
</p>
</div>
</body>
<script>
let f=document.querySelector(".f");
f.firstChild.textContent='첫번째 텍스트';
//첫번째 자손
f.lastChild.textContent='마지막 텍스트';
//마지막 자손
</script>

 

<!DOCTYPE html>
<head>
<style>
</style>
</head>
<body>
<div class="f">
<h1>javascript</h1>
<p>
(세종=연합뉴스) 신선미 기자 = 정부가 물량 부족에 따른 가격 상승을
막기 위해 2030년까지 사과·배 계약재배물량을 각각 세 배,
1.5배로 늘리고 기후변화에 대응해 강원도에 사과 재배지를
2천㏊(헥타르·1만㎡) 조성하기로 했다.
</p>
</div>
</body>
<script>
let f=document.querySelector(".f");
f.firstElementChild.style.color='red';
//공백을 뺀 첫번째 자손
f.lastElementChild.style.color='blue';
//공백을 뺀 마지막 자손
</script>

</html>

 

ElementSibling

<!DOCTYPE html>

<head>
    <style>
    </style>
</head>

<body>
    <div class="f">
        <h1>javascript</h1>
        <div class="c">
            <h2>css</h2>
            <p>
                (세종=연합뉴스) 신선미 기자 = 정부가 물량 부족에 따른 가격 상승을
                막기 위해 2030년까지 사과·배 계약재배물량을 각각 세 배,
                1.5배로 늘리고 기후변화에 대응해 강원도에 사과 재배지를
                2천㏊(헥타르·1만㎡) 조성하기로 했다.
            </p>
        </div>
    </div>

</body>
<script>
    let f = document.querySelector(".f");
    let c = document.querySelector(".c");
    let z = document.querySelector(".c h2");

    // p태그 선택
    z.nextElementSibling.style.border = '2px solid red';
    c.previousElementSibling.style.border = '2px solid blue';

</script>

</html>

 

 

form 요소 접근

document.폼네임.요소네임

폼 클릭시 색 변환됨

<!DOCTYPE html>
<head>
	<style>
	</style>
</head>
<body>
	<form name="test">
		<input type="text" name="test2">
	</form>
</body>
	<script>
		//document.폼네임.요소네임
		//document.forms['폼네임'].elements['요소네임']
		//document.forms['폼네임']['요소네임']
	    let n=document.test.test2;
		n.style.border='2px solid red';

		let n2=document.forms['test'].elements['test2'];
		n2.style.backgroundColor='yellow';

		let n3=document.forms['test']['test2'];
		n3.style.padding='20px';


	</script>

</html>

 

<!DOCTYPE html>
<head>
	<style>
	</style>
</head>
<body>
	<form name="test">
		<input type="text" name="test2">
	</form>
	<div id="pr"></div>
</body>
	<script>
		let n=document.test.test2; //<input>
		let n2=document.getElementById('pr'); //<div>

		n.onkeyup=function(){
			let n3=this.value; //text에 입력한 값이 n3에 저장(내가 입력한값)
			//입력한 값을 n2에 띄운다
			n2.textContent=n3;
		}



	</script>

</html>

 

 

onkeyup 으로 접근

1,3 이 써지면 남에 체크
2,4 가 써지면 여 에 체크

<!DOCTYPE html>
<head>
	<style>
	</style>
</head>
<body>
	<form name="test" class="t">
		<input type="text" name="first" maxlength="6" 
		                   value="001111" disabled>
		
		<input type="text" name="gender" maxlength="1">
		
		<input type="radio" name="g1" id="male">
			<label for="male">남</label>

		<input type="radio" name="g1" id="female">
			<label for="female">여</label>
	</form>
</body>
	<script>
		let n=document.test.gender; //하나의 숫자
		let male=document.getElementById('male');
		let female=document.getElementById('female');

		n.onkeyup=function(){
			let num=this.value; 
			if(num >=1 && num<=4){
				if(num==1 || num==3){
					male.checked=true;
					female.checked=false;
				}
				else{
					male.checked=false;
					female.checked=true;
				}
			}  
		}



	</script>

</html>

 

 

 

<!DOCTYPE html>

<head>
    <style>
        .di {
            border-radius: 10px;
            width: 300px;
            box-shadow: 0 0 20px red;
            padding: 20px;
        }

        #me .di2 {
            display: flex;
            margin: 10px 0;
        }

        #me .di2 label {
            flex: 3;
            /* flex:1 = flex-grow :1, flex-shrink:1, flex-basis:0 */

        }

        #me .di2 input {
            border: 1px solid greenyellow;
            border-radius: 5px;
            padding: 5px;
        }

        #inputb {
            width: 100%;
            border: none;
            cursor: pointer;

        }
    </style>
</head>


<body>
    <div class="di">
        <h2>정보입력</h2>
        <form id="me" name="test" class="t">
            <div class="di2">
                <label for="username">이름</label>
                <input type="text" id="username" name="username">
            </div>
            <div class="di2">
                <label for="addr">주소</label>
                <input type="text" id="addr" name="addr">
            </div>
            <input type="submit" value="정보입력" id="inputb">
        </form>
    </div>
</body>



<script>
    let n = document.getElementById('me'); //form
    n.onsubmit = function () {
        let n2 = document.createElement('p');
        n2.textContent = this.username.value + ' , ' + this.addr.value;
        //p태그에 입력한 이름, 주소 들어감
        n.appendChild(n2);

        this.username.value = '';
        this.addr.value = '';
        return false;

    }
</script>

</html>

 

 

 

<!DOCTYPE html>

<head>
    <style>

    </style>
</head>

<body>
    <form name="" f">
        <p>수 입력</p>
        <input type="number" name="num" id="num" min="1" max="100" required>
        <button type="button" id="ch">확인</button>
    </form>
    <div id="di"></div>
</body>
<script>
    let n=document.getElementById('num');
    let n2=document.getElementById('ch');
    let n3=document.getElementById('di');

    n2.addEventListener('click', function(){
        if(n.checkValidity()){ //입력요소에 유효한 데이터면 true, 아니면 false
            n3.innerHTML='유효한 데이터임';
        }
        else{ // 유효성이 거짓일 경우 메시지 띄우기
            n3.innerHTML=n.validationMessage;
        }
    });
</script>

</html>
728x90

'Language > JavaScript' 카테고리의 다른 글

[JS] 종합복습  (0) 2024.04.03
[JS] className, dataset  (0) 2024.04.03
[JS] 예시  (0) 2024.04.03
[JS] setInterval  (0) 2024.04.02
[JS] window, location 객체 메소드  (0) 2024.04.02

+ Recent posts