This article mainly introduces JavaScriptDOM. You can refer to the fact that DOM has many types. in the previous chapter, for example, Element type: Indicates Element nodes; for example, Text indicates a Text node;
1. DOM type
Type Name Description
Node indicates a unified interface for all types of values, which is not supported by IE;
Document indicates the Document type;
Element indicates the Element node type;
Text indicates the Text node type;
Comment indicates the Comment type in the document;
CDATASection indicates the CDATA region type;
DocumentType indicates the Document declaration type;
DocumentFragment indicates the document fragment type;
Attr indicates the attribute node type;
1. Node Type
DOM1 defines a Node interface, which is implemented by all Node types in the DOM;
This Node interface is implemented as a Node type in JavaScript;
This type can be accessed in all browsers except IE;
2. Document Type
// The Document type indicates the Document or the root node of the Document, which is hidden and has no specific element tag;
Document; // document;
Document. nodeType; // 9; type value;
Document. childNodes [0]; // DocumentType; first subnode object;
Document. childNodes [1]; // HTMLHtmlElement; object;
// If You Want To obtainThe Element Node object of the tag is HTMLHtmlElement. You can use documentElement directly;
Document.doc umentElement; // HTMLHtmlElement;
// You may need to obtainTag, which is commonly used before: document. getElementsByTagName ('body') [0];
Document. body; // HTMLBodyElement;
// InThere is also a document statement:Will be processed as the first node of the browser;
Document.doc type; // DocumentType;
// There are some legacy attributes and object sets in the Document, which can help us quickly and accurately process tasks;
// Attributes
Document. title; // obtain and setTag value;
Document. URL; // obtain the URL path;
Document. domain; // obtain the domain name;
// When the page contains frameworks or embedded frameworks from other subdomains, It is very convenient to set document. domain;
// Due to cross-origin security restrictions, pages from different subdomains cannot communicate through JavaScript;
// By setting document. domain of each page to the same value, these pages can access each other's JavaScript objects;
Document. referrer; // Save the URL of the page linked to the current page;
// Object set
Document. anchors; // gets the element set with the name attribute in the document;
Document. links; // gets the element set with the href attribute in the document;
Document. forms; // get the document
Element Set;
Document. images; // obtain the element set in the document;
3. Element type
// The Element type is used to represent the Element nodes in HTML. in the previous chapter, we introduced operations such as searching and creating Element nodes;
// The element node's nodeType is 1; nodeName is the element's label name;
// The Element Node object can return the object type of its specific element node in a non-IE browser;
Element name Type
HTML HTMLHtmlElement;
DIV HTMLDivElement;
BODY HTMLBodyElement;
P HTMLParamElement;
4. Text Type
// The Text type is used to represent the Text node type. The Text does not contain HTML, or contains HTML after conversion. The nodeType of the Text node is 3; // when two text nodes of the same level are created at the same time, two separate nodes are generated; var box = document. createElement ('P'); var text1 = Document. createTextNode ('Mr '); var text2 = Document. createTextNode ('Lee! '); Box. appendChild (text1); box. appendChild (text2); document. body. appendChild (box); alert (box. childNodes. length); // => 2; two text nodes; // combine two adjacent text nodes and use normalize (); box. normalize (); // merge into a node; // separate a node; box. firstChild. splitText (3); // separate a node; // Text also provides some DOM operation methods var box = document. getElementById ('box'); box. firstChild. deleteData (); // Delete the 2 characters starting from the 0 position; box. firstChild. insertData (0, 'Hello'); // Add the specified character from the position 0; box. firstChild. replaceData (, 'Miss '); // replace two specified characters from 0; box. firstChild. substringData (); // obtain 2 characters from the 0 position and output them directly; alert (box. firstChild. nodeValue); // output the operation result;
5. Comment type
Comment indicates the comments in the Document. nodeType is 8, nodeName is # comment, and nodeValue is the comments;
Var box = document. getElementById ('box ');
Alert (box. firstChild); // Comment;
6. Attr type
The Attr type indicates the attributes in the document element; nodeType: 11; nodeName: attribute name; nodeValue: attribute value; details are listed in the previous chapter;
2. DOM Extension
1. Rendering Mode
// Standard mode and hybrid mode (weird mode) are distinguished from IE6, mainly based on the declaration of the document. // IE adds a compatMode attribute for the document object, this attribute identifies the mode in which documents are in IE. // if it is in standard mode, CSS1Compat is returned. if it is in mixed mode, BackCompat is returned. if (document. compatMode = 'css1compat') {alert(document.doc umentElement. clientWidth);} else {alert (document. body. clientWidth );}
2. Scroll
DOM provides some Page scrolling Methods
Document. getElementById ('box'). scrollIntoView (); // you can specify whether the image is visible;
3. children attributes
Due to the blank subnode issue, IE and other browsers have different interpretations. If you only want a valid subnode, you can use the children attribute, which is non-standard;
Var box = docuemnt. getElementById ('box ');
Alert (box. children. length); // obtain the number of valid subnodes;
4. contains () method
You can use the contains () method to determine whether a node is a descendant of another node;
Var box = document. getElementById ('box ');
Alert (box. contains (box. firstChild); // => true;
3. DOM operation content
1. innerText attributes
Document. getElementById ('box '). innerText; // obtain the text content (if html is directly filtered out); document. getElementById ('box '). innerText = 'Mr. lee '; // set text (if html escaping exists); // PS: This method is supported by other browsers except Firefox; firefox's DOM3 provides another similar property: textContent; // compatible function getInnerText (element) {return (typeof element. textContent = 'string ')? Element. textContent: element. innerText;} function setInnerText (element, text) {if (typeof element. textContent = 'string') {element. textContent = text;} else {element. innerText = text ;}}
2. innerHTML attributes
The innerHTML attribute can be parsed in HTML;
Document. getElementById ('box'). innerHTML; // obtain the text (HTML is not filtered );
Document. getElementById ('box'). innerHTML ='123'; // Bold 123;
Although innerHTML can be inserted into HTML, there are still some restrictions, that is, the so-called scope element. Leaving this scope will be ineffective;
Box. innerHTML = "script" alert ('lil'); script "; // The script element cannot be executed;
Box. innerHTML ="";//