>  기사  >  웹 프론트엔드  >  자바스크립트에서 html 태그를 동적으로 생성하는 방법 예제 요약

자바스크립트에서 html 태그를 동적으로 생성하는 방법 예제 요약

伊谢尔伦
伊谢尔伦원래의
2017-07-27 10:56:521489검색

HTML 이벤트 속성

전역 이벤트 속성: HTML 4에는 사용자가 요소를 클릭할 때 JavaScript를 시작하는 등 이벤트가 브라우저에서 작업을 트리거하도록 하는 기능이 추가되었습니다.

a. 창 이벤트 속성, 창 개체(6c04bd5ca3fcae76e30b72ad730ca86d 태그에 적용됨)에 의해 트리거되는 이벤트의 경우 일반적으로 사용되는 속성은 onload입니다.

b. HTML 양식 내의 작업에 의해 트리거되는 이벤트인 양식 이벤트(거의 모든 HTML 요소에 적용되지만 양식 요소에서 가장 일반적으로 사용됨): 일반적으로 사용되는 이벤트는 onblur, onfocus, onselect 및 onsubmit입니다.

c. 키보드 이벤트

d. 마우스 이벤트, 마우스 또는 유사한 사용자 동작에 의해 트리거되는 이벤트: 일반적으로 사용되는 이벤트는 onclick, onmouseover 및 onmouseout입니다.

e. 미디어 이벤트, 미디어(예: 비디오, 이미지 및 오디오)에 의해 트리거되는 이벤트(모든 HTML 요소에 적용 가능하지만 일반적으로 b97864c2e0ef2353a16c4d64c7734e92, d8e2720730be5ddc9c2a3782839e8eb6, 379b6c8116fe59d19bab947827cb3c46 및 29e8bef2e7516ea5b56ebf1c9dd3b328)

동적으로 HTML 태그 생성

a. 두 가지 전통적인 방법

document.write 메서드와 innerHTML 속성, 둘 다 표준화된 DOM(W3C 표준)에서 지원하는 메서드 및 속성이 아니며 둘 다 HTML 전용 속성입니다.

document.write 메소드는 요소 태그, 특히 문자열을 쉽게 삽입할 수 있습니다. 하지만 이는 웹 디자인이 동작(스크립트)과 구조(html 태그)를 분리해야 한다는 원칙에 어긋납니다.


<!DOCTYPE html>
 <html>
 <head>
 <meta chaset="utf-8" />
 <title>document.write</title>
 <body>
  <script>
  <!--可以很方便的插入元素标签,尤其是字符串.但是它与网页设计应将行为(脚本)和结构(html标签)分离的原则-->
  document.write("<p>This is inserted by document.write</p>");
  </script>
 </body>
 </head>
 </html>

innerHTML은 다음과 같이 웹 페이지에 큰 HTML 콘텐츠를 삽입하는 데 적합합니다.


<p id="testp">
 </p>
 window.onload = function() {
 var testp = document.getElementById("testp");
 testp.innerHTML = "<p>This is inserted by <em>innerHTML</em></p><en>";
 }

b. 더 세련된 dom 방법 - dom 노드 트리 가져오기 및 dom 변경 노드 트리

검색 노드(요소): document.getElementById 및 element.getElementsByTagName

노드(요소) 생성: document.createElement,document.createTextNode

추가 노드(요소): element.appendChild

삽입(노드 하나 삽입 다른 노드 앞에) :parentEelement.insertBefore(newElement, targetElement)

매우 유용한 속성: element.parentNode(부모 노드 가져오기), element.nextSibling(형제 노드 가져오기)

위의 innerHTML 속성을 사용하여 HTML을 삽입하는 효과 dom 메소드를 사용하여 여전히 달성할 수 있습니다:


 window.onload = function() {
  var testp = document.getElementById("testp");
  var para = document.createElement("p");
  testp.appendChild(para);
  var context1 = doument.createTextNode("This is inserted by ");
  para.appendChild(context1);
  var emphasis = document.createElement("em");
  para.appendChild(emphasis);
  var context2 = document.createTextNode("method of domcore");
  emphasis.appendChild(context2);
 }

위의 dom 메소드를 사용하여 다른 노드 뒤에 하나의 노드를 삽입하는 함수를 작성합니다:


function insertAfter(newElement, targetElement) {
 var parent = targetElement.parentNode;
 if (parent.lastChild == targetElement) {
  parent.appendChild(newElement);
 } else {
  targetElement.inserBefore(newElement, targetElement.nextSibling);
 }
}

위 내용은 자바스크립트에서 html 태그를 동적으로 생성하는 방법 예제 요약의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.