使用JavaScript函数添加多个DIV元素
Adding multiple DIV elements using functions with JavaScript
我对JS有点陌生,这就是为什么我寻求一些帮助。我想创建多个嵌套的div元素,如下所示:
<div>
<div>
<div>
</div>
<div>
</div>
</div>
</div>
我已经创建了它们,但我在工作中的导师希望我使用函数,以便代码可读性更强。
我已经尝试为创建的每个元素创建多个函数,但他告诉我他不喜欢,希望我尝试另一种方式。所以这就是我请求帮助的原因。我已经尝试过了(这只是一个样本,没有显示实际代码的权限…公司规则):
function firstContainerCreator(){
firstContainer= doc.createElement("div");
}
function innerContainerCreator(){
innerContainer= doc.createElement("div");
}
function innerContainer_imgCreator(){
innerContainer_img= doc.createElement("div");
}
function innerContainer_paragraphCreator(){
innerContainer_paragraph= doc.createElement("div");
}
感谢您的帮助。
是的,那么问题出在哪里呢?您已经创建了元素,现在通过Javascript的原生appendChild
方法将其附加:
parent = document.getElementById("parentdiv");
parent.appendChild(firstContainer);
您需要创建一个div,然后将子级附加到它以获得嵌套结构:
// create the outer div
var parentDiv = document.createElement("div");
// create the inner divs
var childDiv1 = document.createElement("div");
var childDiv2 = document.createElement("div");
// now append the child divs to the parent
parentDiv.appendChild(childDiv1);
parentDiv.appendChild(childDiv2);
小提琴,例如:http://jsfiddle.net/Nwc3s/9/
您已经通过document.createElement("div")
(document
,而不是doc
)创建了div,但您需要将它们.appendChild()
到它们的父节点上。我建议您不要像最初那样将这些函数的创建打包到函数中,直到您对它们的创建和嵌套有了很好的了解。
在行动中看到它。。。
// The outer div:
var outer_container = document.createElement("div");
// Append it onto the body
document.body.appendChild(outer_container);
// Main inner div
var main_inner = document.createElement("div");
// Append to outer
outer_container.appendChild(main_inner);
// First innermost div
var first_inner = document.createElement("div");
// Second innermost div
var second_inner = document.createElement("div");
// append to main inner div
main_inner.appendChild(first_inner);
main_inner.appendChild(second_inner);
// etc...
function createDivNode(parentNode){
// in case no parent div use <body> as parent
if (!parentNode) var parentNode = document.body;
var el = document.createElement('div');
parentNode.appendChild( el );
return el;
}
var outer = createDivNode();
var inner1 = createDivNode(outer);
var inner2 = createDivNode(outer);
输出:
<body>
<div>
<div></div>
<div></div>
</div>
</body>
http://jsfiddle.net/9FMPv/9/
下面是一个函数,它将为每个子div创建一个父容器、3个子div和一个子div。
var createDivs = (function() {
var parent = document.createElement('div'),
children = 3,
// change this number to reflect how many child divs you need
gchildren = 3,
// same with this
i = 0;
document.body.appendChild(parent);
this.appendGChild = function(child) {
console.log(child);
var gchild = document.createElement('div'),
i = 0;
for (i = gchildren; i--;) {
child.appendChild(gchild);
}
}
for (i = children; i--;) {
var child = document.createElement('div');
parent.appendChild(child);
appendGChild(child);
}
})();
这里有一个jsFiddle来说明这一点。
相关文章:
- 循环对象时更新页面上的DIV元素
- 单击javascript按钮显示/隐藏Div元素
- Javascript 在提交时禁用 Div 元素
- 在 AJAX 调用中发送 DIV 元素的 ID
- 使用JavaScript函数添加多个DIV元素
- 如果在Div元素外部单击,请关闭该元素
- 如何使用CSS3/JavaScript缩放DIV元素及其子元素以适应父元素
- 将DIV元素绑定到溢出滚动条
- 如何切换DIV元素的可见性
- 使用jQuery/JS向上/向下切换DIV元素
- Div元素并没有引导点击以启用拖动功能
- 按百分比定位 Div 元素
- Javascript在秒消失时显示DIV元素,并在此之后隐藏栏的选项
- 切换复选框 - 单击父 DIV 元素
- 图像/DIV 元素切换全屏
- 滚动 DIV 元素的特定滚动条
- 如何使用 id 删除 JavaScript 中的 Div 元素
- 鼠标滚轮滚动 DIV 元素
- 从单个 Div 元素中删除单击事件
- 如何使用 JavaScript 动态设置 DIV 元素的左侧和顶部 CSS 位置