DOM前世の生
6011 ワード
DOMバージョン
概念的にMDNでは、文書オブジェクトモデル(DOM)はHTMLとXMLドキュメントのプログラミングインターフェースであると説明されている.これは、文書(構造ツリー)に構造的な表現を提供し、文書の構造、スタイル、内容を変更するために、構造ツリーにアクセスできる方法を定義しています.DOMは、文書を構造化されたノードグループとし、属性と方法を含むオブジェクトとして表現する形式を提供する.本質的には、ウェブページとスクリプトまたはプログラミング言語を接続しています.
ちょっと言いにくいですが、これも作文を書いて字数をそろえるのではありません.つまり、DOMはJavaScriptがウェブページを操作するインターフェースであり、全て「ドキュメントオブジェクトモデル」と呼ばれています.その役割は、ウェブページをJavaScriptオブジェクトに変換することで、スクリプトを使って各種の操作(例えば、ページの内容を添削して調べること)ができます.厳密に言えば、DOMはJavaScriptに属さないが、DOMを操作するのはJavaScriptにとって最も一般的な任務であり、JavaScriptも最もDOM操作の言語である.
DOMとNODEノードの類似度が高く、NODE APIでよく使われるのは以下のいくつかのタイプです.ノード作成型APIです.ページ修正型API;ノードクエリ型API.ノード関係型API.兄弟関係型API;サブ関係API;元素属性タイプAPI;元素スタイルAPI.時間を作ってからNODE APIを並べてもいいです.馬鹿で分かりにくいからです.それからもう一つのブログを書いて、アイデアを比較してみます.この文章は主にDOM APIの元素選択のタイプとDOM添削のAPIのよくある状況を記録しています.
DOM APIが要素を取得する方法:
ID
要素を作成
w3c DOM , ( ) , DOM 。
DOM 0レベル DOM W3C , IE Netscape 。
DOM 1級1998 10 ,w3c DOM 1.0 。 。 -DOM Core( ): XML , , 、 、 。 -DOM HTML: HTML 、 、 HTML 、 。
DOM 2級2000 1 ,w3c DOM , , DOM 2 。2003 1 ,w3c DOM HTML , HTML 4.01 XHTML 1.0 、 。 DOM2.0 。 DOM 2.0 Core: , 。 DOM 2.0 HTML: HTML , 。 DOM 2.0 Event: , 。 DOM 2.0 Style: css 。 DOM 2.0 Traversal and DOM 2.0 Range: DOM, 。 DOM 2.0 Views: 。 DOM 2.0 。 ie 。
DOM 3級2014 4 ,w3c DOM3.0 。 DOM 3.0 Core: 。 。 DOM 3.0 Load and Save: XML DOM DOM XML 。 DOM 3.0 Validation: , 。
DOM 4級2015 11 ,w3c DOM4.0 。 DOM 。
前世はすでに追憶になっていますが、やはり今生のDOMに関心を持っています.先端開発者にとってよく使われているDOM APIです.概念的にMDNでは、文書オブジェクトモデル(DOM)はHTMLとXMLドキュメントのプログラミングインターフェースであると説明されている.これは、文書(構造ツリー)に構造的な表現を提供し、文書の構造、スタイル、内容を変更するために、構造ツリーにアクセスできる方法を定義しています.DOMは、文書を構造化されたノードグループとし、属性と方法を含むオブジェクトとして表現する形式を提供する.本質的には、ウェブページとスクリプトまたはプログラミング言語を接続しています.
ちょっと言いにくいですが、これも作文を書いて字数をそろえるのではありません.つまり、DOMはJavaScriptがウェブページを操作するインターフェースであり、全て「ドキュメントオブジェクトモデル」と呼ばれています.その役割は、ウェブページをJavaScriptオブジェクトに変換することで、スクリプトを使って各種の操作(例えば、ページの内容を添削して調べること)ができます.厳密に言えば、DOMはJavaScriptに属さないが、DOMを操作するのはJavaScriptにとって最も一般的な任務であり、JavaScriptも最もDOM操作の言語である.
DOMとNODEノードの類似度が高く、NODE APIでよく使われるのは以下のいくつかのタイプです.ノード作成型APIです.ページ修正型API;ノードクエリ型API.ノード関係型API.兄弟関係型API;サブ関係API;元素属性タイプAPI;元素スタイルAPI.時間を作ってからNODE APIを並べてもいいです.馬鹿で分かりにくいからです.それからもう一つのブログを書いて、アイデアを比較してみます.この文章は主にDOM APIの元素選択のタイプとDOM添削のAPIのよくある状況を記録しています.
DOM APIが要素を取得する方法:
ID
document.getElementById('myElement'); // IE5.5+
document.querySelector('#myElement'); // IE8+
CSSクラスesdocument.getElementsByClassName('myElement'); // IE9+
document.querySelectorAll('.myElement'); // IE8+
HTMLタグ名document.getElementsByTagName('div'); // IE5.5+
document.querySelectorAll('div'); // IE8+
HTML属性document.querySelectorAll('[data-foo-bar="someval"]'); // IE8+
疑似クラス id=myForm from :invalid :
document.querySelectorAll('#myForm :invalid'); // IE8+
サブ要素 id="myParent" , :
document.getElementById('myParent').childNodes;
document.getElementById('myParent').children;// IE 9+
ng-click :
document.querySelector('#myParent > [ng-click]');// IE8+
後代元素 id="myParent", :
document.querySelectorAll('#myParent A'); // IE8+
要素を削除 div “ignore” class :
document.querySelectorAll('DIV:not(.ignore)'); // IE9+
複数選択 div , a script :
document.querySelectorAll('DIV, A, SCRIPT'); // IE8+
以下はDOM APIの添削調査です.要素を作成
document.createElement('div');
要素の前/後に要素を挿入するid=1 div id=1.1 div : document.getElementById('1') .insertAdjacentHTML('afterend', '
'); id=1 div id=0.9 div : document.getElementById('1') .insertAdjacentHTML('beforebegin', '
');
作为子元素插入
parent div : document.getElementById('parent') .insertAdjacentHTML('afterbegin', '
'); div : document.getElementById('parent') .insertAdjacentHTML('beforeend', '
');
移动元素
#orphan parent :
document.getElementById('parent')
.appendChild(document.getElementById('orphan'));
#orphan parent :
document.getElementById('parent')
.insertBefore(document.getElementById('orphan'), document.getElementById('c1'));
要素を削除document.getElementById('foobar')
.parentNode.removeChild(document.getElementById('foobar'));
CSSクラスを追加/削除します.id="foo" bold CSS Class: document.getElementById('foo').className += 'bold'; DOM :
Class : document.getElementById('foo').className = document.getElementById('foo').className.replace(/^bold$/, '');
添加/删除/修改元素属性
div role="button" button: document.getElementById('foo').setAttribute('role', 'button'); role : document.getElementById('foo').removeAttribute('role');
添加/修改内容
// IE 5.5+
document.getElementById('div').innerHTML = 'Goodbye!';
// IE 5.5+ but NOT Firefox
document.getElementById('div').innerText = 'GoodBye!';
// IE 9+
document.getElementById('div').textContent = 'Goodbye!';
スタイルの追加と変更document.getElementById('div').style.fontWeight = 'bold';
やや長い…ブラウザのサポート制限を考慮しないと、'document.querySelectorAll'と'document.getElementById'を関数として定義することができますが、コードは少し簡素化されますか?でも、初心者として、APIを何度もノックしてから、スペルバグが出る確率を減らすことができます.毎日キーボードを打って、生活は本当に楽しいです.残念ですが、最近腰君がいなくなりました.どこに逃げましたか?