scriptaculous:builder.js ノードを追加する

 ノードを追加するにはBuilder.node()を使います。Builder.node()の書式は以下のようになります。

Builder.node( elementName )
Builder.node( elementName, attributes )
Builder.node( elementName, children )
Builder.node( elementName, attributes, children )

 一括してエレメント(タグ)と属性や内容を指定することができます。以下のサンプルはpタグを追加しスタイルシートのnoteクラスを指定し、テキストを追加するものです。スタイルシートのnoteクラスでは文字の色を赤に指定しているためノードを追加すると赤い文字で追加されます。(サンプルを実行する

<html>
<head>
<meta http-equiv="content-type" content="text/html;charset=utf-8">
<title>ノードを追加する</title>
<link rel="stylesheet" href="main.css" type="text/css" media="all">
<script type="text/javascript" src="prototype.js"></script>
<script type="text/javascript" src="scriptaculous.js"></script>
<script type="text/javascript"><!--
function addNode()
{
elementObj = Builder.node("p",{className:"note"},"赤い文字で表示されるはず...");
$("contents").appendChild(elementObj);
elementObj = Builder.node("p",{},"ここは普通の黒い文字で表示されるはず...");
$("contents").appendChild(elementObj);
}
// --></script>
</head>
<body>
<h1>scriptaculous.js ノードを追加する</h1>
<form>
<input type="button" value="ノードを追加" onClick="addNode()">
</form>
<div id="contents"></div>
</body>
</html>

 Builder.node()はフラットなエレメントの追加だけでなく、入れ子(ネスト)にしたエレメントを追加することもできます。この場合には三番目のパラメータに配列要素としてBuilder.node()を記述していくことで、何重にも入れ子にすることができます。以下のサンプルではdivタグ内にspanタグを追加するものです。(サンプルを実行する

<html>
<head>
<meta http-equiv="content-type" content="text/html;charset=utf-8">
<title>ノードを追加する(入れ子)</title>
<link rel="stylesheet" href="main.css" type="text/css" media="all">
<script type="text/javascript" src="prototype.js"></script>
<script type="text/javascript" src="scriptaculous.js"></script>
<script type="text/javascript"><!--
function addNode()
{
elementObj = Builder.node("div",{className:"note"},
[Builder.node("span", { style:"background-color:orange"}, "Sample")]
);
$("contents").appendChild(elementObj);
}
// --></script>
</head>
<body>
<h1>scriptaculous.js ノードを追加する(入れ子)</h1>
<form>
<input type="button" value="ノードを追加" onClick="addNode()">
</form>
<div id="contents"></div>
</body>
</html>

[目次へ]

(2006.7.4)