깊이 HTML DOM
나는 모든 웹 페이지의 핵심이다.나는 당신의 문서 대상 모델입니다. 반드시 나무가 아닙니다.
당신은 HTML/CSS를 처음 사용한 사람입니까, 아니면 HTML의 고급 기능을 깊이 이해하고 싶은 사람입니까?그럼 잘 왔네.따라서 커피를 한 잔 마시고 HTML 시리즈의 세 번째 부분을 감상하며 HTML DOM을 깊이 있게 이해한다.재미있는 사실을 얻기 위해'부가점'부분을 교차 검사하는 것을 잊지 마라.
W3C 문서 객체 모델(DOM)은 플랫폼과 언어가 중립적인 인터페이스로 프로그램과 스크립트가 문서의 내용, 구조, 스타일에 동적으로 접근하고 업데이트할 수 있도록 한다
곤혹스러웠어간단히 말해볼게요.모든 웹 페이지는 하나의 문서이며, 웹 페이지의 모든 요소(텍스트, 이미지, 표)는 트리 형식으로 이 문서에 저장되며, 잠시 후에 자바스크립트 등 스크립트 언어로 조작할 수 있다고 상상해 보세요.
현재 브라우저는 웹 페이지를 로드할 때마다 이러한 문서를 만듭니다. 이를 페이지의 **문서 객체 모델(DOM)**이라고 합니다.
DOM은 프로그램이 문서 구조, 스타일 및 내용을 변경할 수 있도록 문서를 노드 및 객체로 표시합니다.이런 방식을 통해 프로그래밍 언어는 웹 페이지에 연결된다.
왜 DOM이 중요합니까?
자바스크립트 팬?그리고 꼭 읽어주세요.
The DOM is not a programming language, but without it, the JavaScript language wouldn’t be able to acess any of the web pages elements in HTML documents, XML documents or their component parts .
As per the W3C specification, one important objective for the Document Object Model is to provide a standard programming interface that can be used in a wide variety of environments and applications.
DOM을 통해 JavaScript는 페이지의 HTML 요소, 속성, CSS 스타일, 요소 및 이벤트 변경 등 동적 HTML을 만드는 데 필요한 모든 기능을 제공합니다.우리는 다음과 같이 말할 수 있습니다.
API = DOM + JavaScript
DOM 유형:
W3C DOM 표준은
파일
인터페이스의 문서는 브라우저에 불러온 모든 웹 페이지를 표시하고 웹 내용의 입구점DOM tree으로 한다.DOM에는 및 등의 요소가 노드로 포함됩니다.페이지의 URL을 가져오거나 문서에 새 요소를 만드는 방법 등 문서 전체에 다양한 기능을 제공합니다.
"text/HTML"내용 유형을 가진 HTML 문서도 HTMLDocument 인터페이스를 실현하고, XML과 SVG 문서는 XMLDocument 인터페이스를 실현한다.
know more about the Document interface here
창(BOM 테이블)
윈도우 대상에 들어가기 전에 다른 개념, BOM에 대해 간단하게 이야기합시다.브라우저 객체 모델(BOM)을 사용하면 JavaScript가 브라우저와 대화할 수 있습니다.비록 브라우저 대상 모델(BOM)에 대한 공식 표준은 없지만 현대 브라우저는 같은 자바스크립트 상호작용 방법과 속성을 실현했다.현재 창 대상은 기본적으로 브라우저 창을 표시합니다.모든 글로벌 JavaScript 객체, 함수 및 변수는 자동으로 창 객체의 구성원이 됩니다.심지어 문서 객체(HTML DOM)도 창 객체의 속성입니다.window.document.getElementById(“header”);
Obviously there are even more stuff you can do with the window object which you will be able to find here
대상
모든 속성, 방법,웹 페이지를 조작하고 만들 수 있는 이벤트는dom 내의 대상에 조직된다. (예를 들어 문서 자체는 문서 자체를 나타내는 대상, 표는 HTML 테이블에 접근하는 특수한 HTMLTableElementdom 인터페이스를 실현하는 대상 등).현대 DOM은 여러 개의 함께 작동하는 API를 사용하여 구축됩니다.핵심DOM은 문서와 그 내부 대상을 근본적으로 묘사하는 대상을 정의했다.필요에 따라 향상되고 확장됩니다.예를 들어, HTML DOM API 에는 HTML 문서를 핵심 DOM에 표시하는 지원이 추가됩니다.인터페이스
많은 객체가 여러 인터페이스에서 대여됩니다.예를 들어table 대상은 전문적인 HTMLTableElement 인터페이스를 실현했다. 이 인터페이스는createCaption과insertRow 등 방법을 포함한다.그러나 이것도 HTML 요소이기 때문에table는 DOM 요소가 한 장에서 기술한 요소 인터페이스를 참조하는 것을 실현했다.마지막으로 DOM의 경우 HTML 요소도 HTML 또는 XML 페이지를 구성하는 객체 모델의 노드 트리의 노드이기 때문에 테이블 객체는 더욱 기본적인 노드 인터페이스를 실현하고 요소는 파생된다.The HTMLTableElement interface provides special properties and methods (beyond the regular HTMLElement object interface it also has available to it by inheritance) for manipulating the layout and presentation of tables in an HTML document.
When you get a reference to a table object, as in the following example, you routinely use all three of these interfaces interchangeably on the object, perhaps without knowing it.
일반 인터페이스: (src:https://developer.mozilla.org/ )
DOM에서 데이터 액세스
JavaScript 사용document 또는 window API는 DOM을 사용하여 웹 페이지의 문서 및 요소에 액세스합니다.예를 들어 표준 DOM이 지정한 getElementsByTagName 아래 코드의 방법은 문서의 모든 요소 목록을 되돌려야 합니다.const paragraphs = document.getElementsByTagName("p");
// paragraphs[0] is the first <p> element
마찬가지로 HTML 요소에 접근할 수도 있습니다.HTML 객체 컬렉션에 나열된 HTML 요소:
파일닻을 내리다.길다
파일형식길다
파일이미지길다
파일링크길다
파일각본.길다
# Python DOM example
#src: [https://developer.mozilla.org/](https://developer.mozilla.org/)
import xml.dom.minidom as m
doc = m.parse(r"C:\Projects\Py\chap1.xml")
doc.nodeName # DOM property of document object
p_list = doc.getElementsByTagName("para")
DOM 데이터 유형
DOM은 거대한 대상이기 때문에 API에서 DOM을 사용하기 위해 다양한 데이터 형식을 전달한다는 점을 주의해야 한다.문서 객체 모델이 아닙니다.
이 절은 문서 대상 모델을 다른 보기에 유사한 시스템과 구분하여 문서 대상 모델을 더욱 정확하게 이해하는 데 목적을 둔다.DOM 요소와의 상호 작용
주의해야 할 기타 요점
브라우저에 형식이 잘못된 HTML이 있으면 DOM이 생성될 때 자동으로 수정됩니다.예를 들어, HTML 파일이 단일 단어인 "Hello"인 경우 브라우저가 DOM에 패키지하고 필요한 것
<head>
을 추가합니다.이와 유사하게 시계는 항상 <tbody>
리소스
Reference
이 문제에 관하여(깊이 HTML DOM), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/anishaswain/html-dom-in-depth-4f1j텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)