Dom API
2424 ワード
DOMとは?
ちなみにDOMはブラウザがJavaScriptに提供する一連のインタフェース(window.documnetで提供されている)で、これらのインタフェースを通じてwebページを操作することができます.しかし、DOMはプログラミング言語ではなく、ドキュメントオブジェクトのモデルであり、プログラミング言語とは独立しています.例えばPythonでもDOMを操作できます.
したがって、Webフロントエンドでよく使われるDOM API(webまたはXMLページ)=DOM+JS(スクリプト言語)
DOM作成
DOMノード(Node)は、通常、ラベル、テキスト、またはHTMLプロパティに対応します.DOMノードには、現在の要素のタイプを表すnodeType属性があります.これは整数です. Element、要素 Attribute,属性 Text,テキスト DOMノードの作成で最も一般的なのはdocumentです.これは電子メールとdocumentです.createTextNodeメソッド:
DOMクエリー
documentは2つのQueryメソッドを提供します.
Elementは、要素に対するDOMナビゲーション方法も多く提供しています.
DOM変更
属性アクション
http://harttle.com/2015/10/01/javascript-dom-api.html
ちなみにDOMはブラウザがJavaScriptに提供する一連のインタフェース(window.documnetで提供されている)で、これらのインタフェースを通じてwebページを操作することができます.しかし、DOMはプログラミング言語ではなく、ドキュメントオブジェクトのモデルであり、プログラミング言語とは独立しています.例えばPythonでもDOMを操作できます.
import xml.dom.minidom as m
doc = m.parse("C:\\Projects\\Py\\chap1.xml");
doc.nodeName # DOM property of document object;
p_list = doc.getElementsByTagName("para");
したがって、Webフロントエンドでよく使われるDOM API(webまたはXMLページ)=DOM+JS(スクリプト言語)
DOM作成
DOMノード(Node)は、通常、ラベル、テキスト、またはHTMLプロパティに対応します.DOMノードには、現在の要素のタイプを表すnodeType属性があります.これは整数です.
var el1 = document.createElement('div');
var el2 = document.createElement('input');
var node = document.createTextNode('hello world!');
DOMクエリー
documentは2つのQueryメソッドを提供します.
/ "myclass"
var el = document.querySelector(".myclass");
// class "note" "alert" div
var els = document.querySelectorAll("div.note, div.alert");
//
var el = document.getElementById('xxx');
var els = document.getElementsByClassName('highlight');
var els = document.getElementsByTagName('td');
Elementは、要素に対するDOMナビゲーション方法も多く提供しています.
// 、
var parent = ele.parentElement;
var parent = ele.parentNode;
// , , nodeType
var nodes = ele.children;
//
var els = ele.getElementsByTagName('td');
var els = ele.getElementsByClassName('highlight');
// /
var el = ele.firstElementChild;
var el = ele.lastElementChild;
// /
var el = ele.nextElementSibling;
var el = ele.previousElementSibling;
DOM変更
// 、
ele.appendChild(el);
ele.removeChild(el);
//
ele.replaceChild(el1, el2);
//
parentElement.insertBefore(newElement, referenceElement);
属性アクション
// {name, value}
var attrs = el.attributes;
// 、
var c = el.getAttribute('class');
el.setAttribute('class', 'highlight');
// 、
el.hasAttribute('class');
el.removeAttribute('class');
//
el.hasAttributes();
http://harttle.com/2015/10/01/javascript-dom-api.html