Javascript 将HTML元素推送到数组中,以便稍后将它们附加到一个div中,该div也是动态创建的
我有一些动态创建的元素。 我想将这些元素推送到一个数组中,以便能够循环所有元素,并为每个元素分配一个属性 问题是,如果我像这样声明一个数组Javascript 将HTML元素推送到数组中,以便稍后将它们附加到一个div中,该div也是动态创建的,javascript,html,arrays,for-loop,dynamic,Javascript,Html,Arrays,For Loop,Dynamic,我有一些动态创建的元素。 我想将这些元素推送到一个数组中,以便能够循环所有元素,并为每个元素分配一个属性 问题是,如果我像这样声明一个数组var-array=[]我无法将HTML元素推送到它。控制台日志显示: 无法读取未定义的属性“push” 如果我像这样声明数组var数组则我无法将元素推送到它 这是我想要的。 var listgroupdiv = document.createElement("div"); var listgroupdiv1 = document
var-array=[]代码>我无法将HTML元素推送到它。控制台日志显示:
无法读取未定义的属性“push”
如果我像这样声明数组var数组代码>则我无法将元素推送到它
这是我想要的。
var listgroupdiv = document.createElement("div");
var listgroupdiv1 = document.createElement("div");
var listgroupdiv2 = document.createElement("div");
var ListGroupClass = document.createAttribute("class");
ListGroupClass.value = "row";
listgroupdiv.setAttributeNode(ListGroupClass);
var ListGroupClass1 = document.createAttribute("class");
ListGroupClass1.value = "col-4";
listgroupdiv1.setAttributeNode(ListGroupClass1);
var ListGroupClass2 = document.createAttribute("class");
ListGroupClass2.value = "list-group";
listgroupdiv2.setAttributeNode(ListGroupClass2);
var ListGroupID = document.createAttribute("id");
var ListGroupRole = document.createAttribute("role");
ListGroupID.value = "list-tab";
ListGroupRole.value = "tablist";
listgroupdiv2.setAttributeNode(ListGroupID);
listgroupdiv2.setAttributeNode(ListGroupRole);
var id_href = 0;
var Array_A_Group = [];
for(var b = 0; b < CommentArray.length; b++){
if(CommentArray[b].indexOf("Parts:") > -1){
var listgroupa = document.createElement("a");
var listgroupaClass = document.createAttribute("class");
var listgroupaID = document.createAttribute("id");
var listgroupaToggle = document.createAttribute("data-toggle");
var listgroupaHref = document.createAttribute("href");
var listgroupaRole = document.createAttribute("role");
var listgroupaAria = document.createAttribute("aria-controls");
listgroupaClass.value = "list-group-item list-group-item-action";
listgroupaID.value = String(id_href);
listgroupaToggle.value = "list";
listgroupaHref.value = String(id_href);
listgroupaRole.value = "tab";
listgroupaAria.value = "home";
listgroupa.setAttributeNode(listgroupaClass);
listgroupa.setAttributeNode(listgroupaID);
listgroupa.setAttributeNode(listgroupaToggle);
listgroupa.setAttributeNode(listgroupaHref);
listgroupa.setAttributeNode(listgroupaRole);
listgroupa.setAttributeNode(listgroupaAria);
var CommentText = document.createTextNode(CommentArray[b]);
listgroupa.appendChild(CommentText);
Array_A_Group[id_href].push(listgroupa); // <<-- Problem is in this line!
id_href++;
}
}
var listgroupdiv=document.createElement(“div”);
var listgroupdiv1=document.createElement(“div”);
var listgroupdiv2=document.createElement(“div”);
var ListGroupClass=document.createAttribute(“类”);
ListGroupClass.value=“行”;
listgroupdiv.setAttributeNode(ListGroupClass);
var ListGroupClass1=document.createAttribute(“类”);
ListGroupClass1.value=“col-4”;
listgroupdiv1.setAttributeNode(ListGroupClass1);
var ListGroupClass2=document.createAttribute(“类”);
ListGroupClass2.value=“列表组”;
listgroupdiv2.setAttributeNode(ListGroupClass2);
var ListGroupID=document.createAttribute(“id”);
var ListGroupRole=document.createAttribute(“角色”);
ListGroupID.value=“列表选项卡”;
ListGroupRole.value=“tablist”;
listgroupdiv2.setAttributeNode(ListGroupID);
listgroupdiv2.setAttributeNode(ListGroupRole);
变量id_href=0;
var数组_A_组=[];
for(var b=0;b-1){
var listgroupa=document.createElement(“a”);
var listgroupaClass=document.createAttribute(“类”);
var listgroupaID=document.createAttribute(“id”);
var listgroupaToggle=document.createAttribute(“数据切换”);
var listgroupaHref=document.createAttribute(“href”);
var listgroupaRole=document.createAttribute(“角色”);
var listgroupaAria=document.createAttribute(“aria控件”);
listgroupaClass.value=“列表组项目列表组项目操作”;
listgroupaID.value=String(id_href);
listgroupaToggle.value=“list”;
listgroupaHref.value=String(id_href);
listgroupaRole.value=“tab”;
listgroupaAria.value=“主页”;
setAttributeNode(listgroupaClass);
setAttributeNode(listgroupaID);
listgroupa.setAttributeNode(ListGroupAtogle);
listgroupa.setAttributeNode(ListGroupaRef);
setAttributeNode(listgroupaRole);
setAttributeNode(listgroupaAria);
var CommentText=document.createTextNode(CommentArray[b]);
listgroupa.appendChild(CommentText);
Array_A_Group[id_href].push(listgroupa);//问题确实在于这一行:
Array\u A\u Group[id\u href].push(listgroupa);
数组对象的push方法在数组本身上调用
e、 g
Array\u A\u Group.push(listgroupa);
按照您所做的方式,它尝试将对象推送到array\u A\u组中的数组中
在索引id_href处。由于此元素不存在,因此您正确地得到错误无法读取未定义的属性“push”
此外,您不需要保留额外的变量来跟踪数组的索引。将某些内容推送到数组后,它的索引将自动增加。您好,欢迎使用SO。您知道它的添加-方法吗?哦,天哪,这真是太酷了。:哦,天哪,谢谢。这一点现在很明显。我尝试从b开始推出于某种原因,我创建了这个变量。但这个变量实际上不仅仅是为了这个目的,我也只是在这里使用它。但你是对的。谢谢!没问题,兰登博士-很高兴我能帮上忙!)
<div class="row">
<div class="col-4">
<div class="list-group" id="list-tab" role="tablist">
<a class="list-group-item list-group-item-action active" id="list-home-list" data-toggle="list" href="#list-home" role="tab" aria-controls="home">Home</a>
<a class="list-group-item list-group-item-action" id="list-profile-list" data-toggle="list" href="#list-profile" role="tab" aria-controls="profile">Profile</a>
<a class="list-group-item list-group-item-action" id="list-messages-list" data-toggle="list" href="#list-messages" role="tab" aria-controls="messages">Messages</a>
<a class="list-group-item list-group-item-action" id="list-settings-list" data-toggle="list" href="#list-settings" role="tab" aria-controls="settings">Settings</a>
</div>
</div>
<div class="col-8">
<div class="tab-content" id="nav-tabContent">
<div class="tab-pane fade show active" id="list-home" role="tabpanel" aria-labelledby="list-home-list">...</div>
<div class="tab-pane fade" id="list-profile" role="tabpanel" aria-labelledby="list-profile-list">...</div>
<div class="tab-pane fade" id="list-messages" role="tabpanel" aria-labelledby="list-messages-list">...</div>
<div class="tab-pane fade" id="list-settings" role="tabpanel" aria-labelledby="list-settings-list">...</div>
</div>
</div>
</div>