将链接模式应用于元素及其子元素的创建
Applying chaining pattern to creation of an element and its children?
我有一个函数
function createElement(name, value, parent) {
var ele = document.createElement(name);
ele.innerHTML = value;
parent.appendChild(ele);
return ele;
}
它创建元素,添加一个值并将其附加到其父元素。现在我想让它成为可链接的,在同一个对象上多次调用一个函数。
使用上面的函数,生成<div><span></span></div>
,它看起来像
var div1 = createElement('div', 'Div1', document.body);
var span = createElement('span', 'Span', div1);
因此,为了通过Chaining获得预期的输出,例如,我想应用
document.body.createChild('div', 'Div').createChild('a', 'Anchor')
…等等,其中createChild
函数接受两个参数,即元素的名称和文本值。
如果您对如何在JS中创建链接模式感兴趣。这里有一个例子:
var chain = function (el) {
return {
createElement: function (name, value) {
var ele = document.createElement(name);
ele.innerHTML = value;
el.appendChild(ele);
return chain(ele);
}
};
};
var el = document.getElementById('test');
chain(el).createElement('div','Div1').createElement('span','Span');
这将导致
<div id="test"><div>Div1<span>Span</span></div></div>
但是,如果您想将列表链接到一个元素,则需要更花哨的东西。或者对于这个例子
var ul = chain(ul);
ul.createElement('li', '1');
ul.createElement('li', '2');
相关文章:
- 有没有一种方法可以让内联事件处理程序在元素创建后立即执行
- 根据对多个数组唯一的元素创建一个新数组
- 使用Jquery从所有元素创建一个字符串
- 如何从html表单数组元素创建javascript数组
- 在 Backbone.js 中为集合中的一个元素创建详细信息页面
- 动态 DOM 元素创建
- 每 5 个元素创建一个新对象
- 下划线 从对象元素创建对象数组
- 从 2 个特定元素创建网格
- 维基百科如何从
- mongodb:如何为每个数组元素创建_id
- 如何为每 5 个元素创建一个 DIV
- 如何为自定义聚合物元素创建方法并在主应用程序中调用它
- jQuery元素创建,值传递
- 我无法基于实际的 HTML 元素创建类
- 在 jQuery 中迭代数组时,每隔一个元素创建新列表
- Mouseover/out难题上的JS元素创建/删除
- 为Angular指令创建的元素创建名称
- Javascript/jquery从具有相同rel的元素创建数组
- 如何使用DOM元素创建表单的副本