zCool工具箱新增工具——createElement方法。
用法:根据(HTML)字符串参数创建一个元素。
示例:
createElement('div');//这个当然是调用内置方法了
createElement('<tbody><tr><td></td></tr><tr></tbody>');
createElement('<img src="***" name="***" />');
createElement('<br>');
你可以回想一下,特别是用insertRow/insertCell这些传统方法为表格创建添加元素有多痛苦
源码实现:
/**
* @author zbm2001 宝儿
*/
createElement = function(sHtml){
// 创建一个可复用的包装元素
var recycled = document.createElement('div'),
// 创建标签简易匹配
reg = /^<([a-zA-Z]+)(?=\s|\/>|>)[\s\S]*>$/,
// 某些元素HTML标签必须插入特定的父标签内,才能产生合法元素
// 另规避:ie7-某些元素innerHTML只读
// 创建这些需要包装的父标签hash
hash = {
'colgroup': 'table',
'col': 'colgroup',
'thead': 'table',
'tfoot': 'table',
'tbody': 'table',
'tr': 'tbody',
'th': 'tr',
'td': 'tr',
'optgroup': 'select',
'option': 'optgroup',
'legend': 'fieldset'
};
// 闭包重载方法(预定义变量避免重复创建,调用执行更快,成员私有化)
createElement = function(sHtml){
// 若不包含标签,调用内置方法创建并返回元素
if (!reg.test(sHtml)) {
return document.createElement(sHtml);
}
// hash中是否包含匹配的标签名
var tagName = hash[RegExp.$1.toLowerCase()];
// 若无,向包装元素innerHTML,创建/截取并返回元素
if (!tagName) {
recycled.innerHTML = sHtml;
return recycled.removeChild(recycled.firstChild);
}
// 若匹配hash标签,迭代包装父标签,并保存迭代层次
var deep = 0, element = recycled;
do {
sHtml = '<' + tagName + '>' + sHtml + '</' + tagName + '>';
deep++;
}
while (tagName = hash[tagName]);
element.innerHTML = sHtml;
// 根据迭代层次截取被包装的子元素
do {
element = element.removeChild(element.firstChild);
}
while (--deep > -1);
// 最终返回需要创建的元素
return element;
}
// 执行方法并返回结果
return createElement(sHtml);
}
分享到:
相关推荐
这个函数接收一个字符串参数 `arg`,然后创建一个 `div` 元素,并将字符串插入到该元素中,然后返回该元素的子节点。这样,我们就完成了一个字符串到标准 DOM 的转换。 使用这个函数,我们可以轻松地将字符串转换为...
总的来说,将文本字符串转换为锚链接是JavaScript中的一种基本操作,它涉及到了DOM元素的创建、属性设置以及动态更新页面内容的能力。在实际开发中,掌握这种技巧有助于提高用户体验,使用户能够更方便地与链接交互...
首先,需要创建一个`XmlDocument`实例,然后通过`CreateElement`方法创建元素,最后使用`AppendChild`或`InsertBefore`方法将元素添加到父元素中。例如: ```csharp XmlDocument doc = new XmlDocument(); ...
另外,有些情况下,后端返回的HTML字符串可能需要插入到页面上的某个已存在的元素中,例如一个id为`pay`的元素。这种情况下,我们可以这样做: ```javascript async mounted() { const data = await this.payOrder...
根据提供的文件信息,我们可以归纳出一系列关于C#中字符串处理的重要知识点。这些知识点不仅涵盖了基本的字符串操作,还包括了格式转换、日期时间处理以及其他高级功能。以下是对这些知识点的详细阐述: ### C#字符...
在JavaScript中,我们可以使用`document.createElement()`方法创建新的DOM节点,`innerHTML`属性来设置或获取元素的HTML内容,以及`appendChild()`、`removeChild()`等方法操作已有节点。下面是一个简单的例子,展示...
在这个例子中,我们创建了一个带有“my-div-icon”类的div图标,并将其内容设置为一个简单的HTML字符串。接着,我们创建了一个Marker对象,指定了这个div图标,并将其添加到了地图上。 为了使HTML元素能够响应用户...
### JavaScript中`createElement`的两种创建...第一种方式适用于需要精细控制元素属性的场景,而第二种方式则适用于简单快速的元素创建。理解这两种方式的区别及其应用场景,对于提高JavaScript编程技能非常有帮助。
需要注意的是,当使用字符串方式创建元素时,如果字符串包含脚本代码,这些代码将不会被执行,因为 `createElement` 方法中的字符串不会被浏览器解析为 HTML,而是作为一个普通的字符串处理。这就是为什么在 `Create...
`createElement()`创建新的元素,`appendChild()`或`insertBefore()`用于将新元素插入到文档中。例如,`var newElement = document.createElement('div'); document.body.appendChild(newElement);`会在页面底部添加...
自定义元素是Web Components技术的一部分,它允许开发者创建具有特定功能的可复用、自包含的HTML元素。在JavaScript中,我们可以利用`class extends HTMLElement`来定义一个自定义元素,然后通过`customElements....
以下是一个简单的函数`parseDom`,它接受一个HTML字符串作为参数,通过创建一个临时的`div`元素,然后设置其`innerHTML`属性为传入的字符串,从而实现字符串到DOM的转换。之后,通过`childNodes`属性获取并返回转换...
接下来,通过设置`innerHTML`属性将HTML字符串赋值给新创建的`div`元素: ```javascript el.innerHTML = "<html><head><title>titleTest</title></head><body><a href='test0'>test01</a><a href='test1'>test02...
常见的字符串方法包括`length`属性(返回字符串长度),`charAt()`(根据索引获取字符),`charCodeAt()`(获取字符的Unicode编码),以及`fromCharCode()`(根据Unicode编码创建字符)。 以上是JavaScript中的一些...
3. 创建元素:根据转换后的字符串,使用`createElement`等方法创建DOM元素。 4. 插入DOM:使用`appendChild`或`insertAdjacentHTML`等方法将新创建的元素追加到目标位置。 使用这样的工具,开发者可以更方便地管理...
在JavaScript中,字符串是不可变的,这意味着一旦创建,就不能改变。因此,追加字符串通常涉及到将两个或多个字符串合并成一个新的字符串。这可以通过使用加号"+"来实现。例如: ```javascript var str1 = "Hello";...
本篇文章将详细介绍如何在JointJS中创建自定义视图,以便在元素中嵌入HTML,实现功能性的输入。 首先,了解JointJS的基本概念是必要的。JointJS的核心是Graph和Paper。Graph是一个数据结构,存储了所有的元素...
1、字符串———->jQuery对象 $(HTML字符串): $(‘我是祖国的一朵小花’) 待添加列表 2、jQuery对象———->DOM对象 下标选取法(原理:jQuery是DOM的数组形式):$(“h2”)[1] 使用.get(index)函数 3、字符串———–>...
字符串拼接形式适合于简单的元素创建和插入,尤其是当元素结构相对固定且不需要复杂交互时。使用Document、Element对象则适合于需要进行复杂操作的情况,比如对元素进行事件监听、动态绑定数据和逻辑处理等。 总结...