xCreate方法的目的是通过JSON来定义HTML,以方便开发者在Javascript中创建DOM。常用的与xCreate相关的方法共有如下几个:

  • $.xCreate() - 根据JSON创建DOM元素并返回。
  • $().xAppend() - jQuery扩展,根据JSON创建DOM元素并添加到当前jQuery包装的DOM中。
  • $().xInsertBefore() - jQuery扩展,根据JSON创建DOM元素并添加到当前jQuery包装的DOM之前。
  • $().xInsertAfter() - jQuery扩展,根据JSON创建DOM元素并添加到当前jQuery包装的DOM之后。

下面的示例都将以xCreate()为例来说明,具体请参考各个方法的API文档:xCreate

简单JSON

tagName表示DOM的节点名,content表示DOM节点的内容

$.xCreate({
	tagName: "div",
	content: "Hello World!"
});

创建多个对象

如果要创建的某个DOM的tagName是DIV,那么相应的JSON对象的tagName是可以省略的。

$.xCreate([
	{
		content: "Hello World!"
	},
	{
		tagName: "input",
		value: "This is an input"
	}
]);

定义Style

style既可以通过字符串定义,也可以通过子JSON来定义。

$.xCreate([
	{
		content: "Style by String",
		style: "color:red; font-weight:bold"
	},
	{
		content: "Style by JSON",
		style: {
			color: "blue",
			fontStyle: "italic"
		}
	}
]);

子对象

当content的值是子JSON对象或数组,就表示要定义DOM的子节点而不是文本内容。

$.xCreate([
	{
		content: {
			tagName: "input",
			type: "text"
		}
	},
	{
		content: [
			"Some text ",
			{
				tagName: "input",
				type: "checkbox"
			},
			{
				tagName: "input",
				type: "checkbox"
			}
		]
	}
]);

空节点的简写

有时我们只需要创建一个空的节点,那么只要利用“^”开头的字符串指定好节点名就可以了。

$.xCreate([ "^input", "^hr" ]);

创建Table

$.xCreate({
	tagName: "table",
	style: {
		width: 200
	},
	content: [
		{
			tagName: "tr",
			style: "height: 30px",
			content: ["^td", "^td"]
		},
		{
			tagName: "tr",
			style: "height: 30px",
			content: ["^td", "^td"]
		}
	]
});

绑定事件

如果某个属性的值是一个Function则表示我们绑定一个事件。

$.xCreate({
	tagName: "button",
	content: "Click Me",
	click: function() {
		alert("Hello World!");
	}
});

文档目录