DOM操作
DOMノードの操作するメソッドがdojo.domに提供されている。以下に例を示す。利用するときは、dojo.domをrequireする。
dojo.require("dojo.dom"); var str = "<a><b>b1txt</b><b>b2txt</b><b2><c>c1txt</c><c>c2txt</c></b2></a>"; var dom = dojo.dom.createDocumentFromText(str); var elm = dojo.dom.firstElement(dom.firstChild, 'b2'); var str2 = dojo.dom.innerXML(elm); --> "<b2><c>c1txt</c><c>c2txt</c></b2>" var tagName = dojo.dom.isTag(elm, "a", "b", "b2"); --> "b2"
以下にdojo.domのメソッド一覧を示す。
メソッド名 | 概要 |
---|---|
isNode(obj) | 引数のobjectがDOM Elementであるかどうかをbooleanで返す |
firstElement(parentNode, tagName) | タグ名が文字列tagNameである最初の子要素を取得する |
lastElement(parentNode, tagName) | タグ名が文字列tagNameである最後の子要素を取得する |
nextElement(node, tagName) | タグ名が文字列tagNameである次の要素を取得する |
prevElement(node, tagName) | タグ名が文字列tagNameである前の要素を取得する |
moveChildren(srcNode, destNode, trim) | srcNodeの子要素をdestNodeの子要素に移し、移動させた要素数を返す。trim==trueを指定するとテキストノードを取り除く |
copyChildren(srcNode, destNode, trim) | srcNodeの子要素をdestNodeに子要素としてコピーし、コピーした要素数を返す。trim==trueを指定するとテキストノードを取り除く |
replaceChildren(node, newChild) | nodeの全ての子要素を取り除き、newChildに置き換える |
removeChildren(node) | nodeの全ての子要素を取り除き、除いた要素数を返す |
replaceNode(node, newNode) | nodeをnewNodeに置き換え、取り除いたnodeの参照を返す |
destroyNode(node) | nodeを取り除く |
removeNode(node) | nodeが親を持つとき、親からnodeを取り除き、取り除いたnodeの参照を返す |
getAncestors(node, filterFunction, returnFirstHit) | optionのfilterFunctionにマッチする(filterFunction(node)==trueとなる)全ての祖先要素を返す。returnFirstHit==trueのときは、最初にマッチした祖先要素のみを返す |
getAncestorsByTag(node, tag, returnFirstHit) | 要素名tagである全ての祖先要素を返す。returnFirstHit==trueのときは、最初にマッチした祖先要素のみを返す |
getFirstAncestorByTag(node, tag) | 要素名tagである最初の祖先要素を返す |
isDescendantOf(node, ancestor, guaranteeDescendant) | nodeがancestorの子孫要素であるかどうかをbooleanで返す。guaranteeDescendant==tureを指定するとnodeとancestorが同じときにfalseとなる |
innerXML(node) | DOM Element(node)のXML文字列表現を返す |
createDocument() | クロスブラウザのXML Documentを作成する |
createDocumentFromText(str, mimetype) | XML文字列(str)をDOM Elementにして返す。Firefoxのときは、mimetype指定を指定した場合、new DOMParser().parseFromString(abc, "text/html")のように使うことができる |
prependChild(node, parent) | parentの最初の子要素にnodeを追加する |
insertBefore(node, ref, force) | refの前にnodeを移動させ、移動できたときはtrueを返す。force==trueのときはnodeとrefが同じ要素、refがnodeの前の要素であってもtrueを返す |
insertAfter(node, ref, force) | refの後ろにnodeをを移動させ、移動できたときはtrueを返す。force==trueのときはnodeとrefが同じ要素、refがnodeの後の要素であってもtrueを返す |
insertAtPosition(node, ref, position) | refに対するpositionの指定("before", "after", "first", "last")に基づいてnodeを追加する |
insertAtIndex(node, containingNode, insertionIndex) | containingNodeの子要素のinsertIndex番目にnodeを追加する |
textContent(node, text) | nodeの子要素をXML文字列(text)に置き換える |
hasParent(node) | nodeが親要素を持つかどうかをbooleanで返す |
isTag(node, tagName1, tagName2, ...) | nodeの要素名がtagName1, 2...として与えた名前の中に当てはまるものがあればその名前を文字列として返す。ないときは空文字列を返す |
setAttributeNS(elem, namespaceURI, attrName, attrValue) | DOM2のsetAttributeNSの実装 |
この記事へのコメントは終了しました。
コメント