index.js에 아래의 내용을 구현해주세요.
- p 태그를 생성하고 (hint: createElement),
- 해당 요소에 dom 이라는 class 이름을 주고 (hint: className)
- 해당 요소에 "DOM" 이라는 텍스트를 넣어서 (hint: innerHTML)
- h1요소 내부에 추가 (hint: appendChild)
.title { color: red; }
👉 index.html
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width">
<title>repl.it</title>
</head>
<body>
<script src="index.js"></script>
<script>
function sayHi() {
console.log('여기는 index.html파일입니다.');
}
sayHi();
</script>
<h1>html 페이지</h1>
</body>
</html>
👉 style.css
.title {
color: red;
}
.dom {
color: blue;
}
function manyChange(){
let paraDom = document.createElement('p');
}
function manyChange(name){
let paraDom = document.createElement('p');
paraDom.className = name;
}
manyChange('dom');
function manyChange(name){
let paraDom = document.createElement('p');
paraDom.className = name;
paraDom.innerHTML = "DOM";
}
manyChange('dom');
function manyChange(name){
let paraDom = document.createElement('p');
let paraH1 = document.getElementsByTagName('h1');
paraDom.className = name;
paraDom.innerHTML = "DOM";
paraH1[0].appendChild(paraDom);
}
manyChange('dom');
👉 index.js
function manyChange(name){
let paraDom = document.createElement('p');
// <p></p>
let paraH1 = document.getElementsByTagName('h1');
paraDom.className = name;
//<p class="dom"></p>
paraDom.innerHTML = "DOM";
// <p class="dom">DOM</p>
paraH1[0].appendChild(paraDom);
// <h1><p class="dom">DOM</p><h1>
}
manyChange('dom');
.createElement('(요소)')
.getElementsByTagName('(태그 이름)')
.className = "(클래스 이름)"
.innerHTML = "(텍스트내용)"
부모요소.appendChild(자식요소)
웹페이지의 HTML을 계층화시켜 트리구조로 만든 객체(Object) 모델
마켓 컬리가 API를 통해 서버에서 카테고리 목록의 데이터를 가져오는 순서:
document객체는 DOM트리의 root node에 접근하게 해줍니다.
document객체로 요소(element)와 요소의 속성(attribute)에 접근하여 class, id 추가 및 style 수정합니다.
요소의 내용(content)는 innerHTML
로 접근, 수정.
document.body.innerHTML = '내용 다 바꿈';
// body태그 내부에 있는 것을 '내용 다 바꿈'이라는 텍스트로 바꾼다
특정 element 접근: tag, class, id
와 같은 css selector로:
let blueElement = document.querySelector('.blue');
blueElement.style.backgroundColor = 'blue';
css | js |
---|---|
background-color | backgroundColor |
JavaScript에서 hypen(-)은 사용할 수 없으므로 camelCase로 바꿉니다.
요소(element)를 만들려면 .createElement (tagName)
함수를 사용하며, 만든 후에는 어딘가의 element에 append시켜줘야 합니다.
innerHTML
는 내용을 전부 대체 시켰다면 appendChild
함수는 요소의 뒤쪽에 붙여줍니다.