« 色指定/変換 | トップページ | タイマー »

2007年5月12日 (土)

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の実装

« 色指定/変換 | トップページ | タイマー »

コメント

コメントを書く

(ウェブ上には掲載しません)

トラックバック

この記事のトラックバックURL:
http://app.f.cocolog-nifty.com/t/trackback/232684/6394444

この記事へのトラックバック一覧です: DOM操作:

« 色指定/変換 | トップページ | タイマー »