使用Javascript DOM删除HTML中的无序列表
基本上,我需要执行的任务是使用使用Javascript DOM删除HTML中的无序列表,javascript,php,jquery,html,css,Javascript,Php,Jquery,Html,Css,基本上,我需要执行的任务是使用removeChild()函数删除整个“代理”数组,但根据我所阅读的[here][1],它需要id。 之后,我需要用“freshagent”数组替换“agent”数组,并将其显示在无序列表中 我的问题是无法设置“ul”的id,因为我使用了createElement()函数。 因此,我无法删除“代理”数组 //旧代码 <!DOCTYPE html> <html> <head> </head> &l
removeChild()
函数删除整个“代理”数组,但根据我所阅读的[here][1],它需要
id。
之后,我需要用“freshagent”数组替换“agent”数组,并将其显示在无序列表中
我的问题是无法设置“ul”的id,因为我使用了createElement()
函数。
因此,我无法删除“代理”数组
//旧代码
<!DOCTYPE html>
<html>
<head>
</head>
<body>
<div id="wrapper">
</div>
<script>
var agents = [
"Dion" ,
"Elisa" ,
"Selena" ,
"Shauna" ,
"Rodger"
];
var freshAgents = [
"Gray",
"Shivani",
"Brainne",
"Jason",
"FChad"
];
var i = 0;
var ul = document.createElement('ul');
ul.setAttribute("id","aList");
for (i in agents){
var list = document.createElement('li');
var node = document.createTextNode(agents[i]);
list.appendChild(node);
ul.appendChild(list);
}
rList = document.getElementById("aList");
if (rList.hasChildNodes()){
for(i in agents){
rList.removeChild(rList.childNodes[i]);
}
}
var finalList = agents.concat(freshAgents);
for (i in finalList){
var list = document.createElement('li');
list.appendChild(document.createTextNode(finalList[i]));
ul.appendChild(list);
}
document.getElementById("wrapper").appendChild(ul);
</script>
</body>
</html>
var代理=[
“迪翁”,
“Elisa”,
“赛琳娜”,
“Shauna”,
“罗杰”
];
var freshAgents=[
“灰色”,
“希瓦尼”,
“布莱恩”,
“杰森”,
“FChad”
];
var i=0;
var ul=document.createElement('ul');
ul.设置属性(“id”、“列表”);
适用于(代理中的i){
var list=document.createElement('li');
var节点=document.createTextNode(代理[i]);
list.appendChild(节点);
ul.儿童(名单);
}
rList=document.getElementById(“列表”);
if(rList.hasChildNodes()){
适用于(代理中的i){
rList.removeChild(rList.childNodes[i]);
}
}
var finalList=agents.concat(freshAgents);
对于(我在finalList){
var list=document.createElement('li');
list.appendChild(document.createTextNode(finalList[i]);
ul.儿童(名单);
}
document.getElementById(“包装器”).appendChild(ul);
//新代码(工作)
var试剂=[“迪翁”、“Elisa”、“赛琳娜”、“肖纳”、“罗杰”];
var freshAgents=[“Gray”、“Shivani”、“Branne”、“Jason”、“FChad”];
var i=0;
var ul=document.createElement('ul');
适用于(代理中的i){
var list=document.createElement('li');
var节点=document.createTextNode(代理[i]);
list.appendChild(节点);
ul.儿童(名单);
}
var rList=document.getElementById(“包装器”).appendChild(ul);
做{
rList.removeChild(rList.childNodes[0]);
}while(rList.hasChildNodes())
对于(我在freshAgents){
var list=document.createElement('li');
list.appendChild(document.createTextNode(freshAgents[i]);
ul.儿童(名单);
}
我不能真正理解你的问题,但基于此
问题:我无法为“ul”设置id,因为使用了createelement函数。我无法删除“代理”数组
我假设您想向使用document.createElement()
创建的元素添加id
。您可以这样做:
var el = document.createElement('div');
el.id = 'exampleID';
首先,请以整洁易读的方式输入您的代码,以便每个人都能阅读。我已将您的代码格式化为以下格式:
var agents = ["Dion", "Elisa", "Selena", "Shauna", "Rodger"];
var freshAgents = ["Gray", "Shivani", "Brainne", "Jason", "FChad"];
var i = 0;
var ul = document.createElement('ul');
ul.setAttribute("id", "aList");
for (i in agents) {
var list = document.createElement('li');
var node = document.createTextNode(agents[i]);
list.appendChild(node);
ul.appendChild(list); }
rList = document.getElementById("aList");
if (rList.hasChildNodes()) {
for (i in agents) {
rList.removeChild(rList.childNodes[i]);
}
}
var finalList = agents.concat(freshAgents);
for (i in finalList) {
var list = document.createElement('li');
list.appendChild(document.createTextNode(finalList[i]));
ul.appendChild(list);
}
document.getElementById("wrapper").appendChild(ul);
另一个提示:由于您引用的是HTML,建议您也提供该代码。再说一次,这不是必要的,只是礼节而已
关于设置id
,请使用:
var example = document.createElement('ul');
example.id = 'example_ID';
看来你要走很长的路了。我对您的代码进行了一些调整,使其符合我认为您的要求。我会做一些不同的事情,但从你的问题看来,这是你想要的方式
var agents = ["Dion", "Elisa", "Selena", "Shauna", "Rodger"];
var freshAgents = ["Gray", "Shivani", "Brainne", "Jason", "FChad"];
var ul = document.createElement('ul');
ul.id = "aList";// give it an ID
for (var i = 0; i < agents.length; i++) {
var list = document.createElement('li');
var node = document.createTextNode(agents[i]);
list.appendChild(node);
ul.appendChild(list);
}
document.getElementById("wrapper")
.appendChild(ul);
rList = document.getElementById("aList");//this is the same as ul variable declared above
if (rList.hasChildNodes()) {
console.log(rList.childNodes);//lists the <LI>...<LI> nodes
for (var i = 0; i < rList.childNodes.length; i++) {//Loop through the nodes not your agent array
rList.removeChild(rList.childNodes[i]);
}
}
var finalList = agents.concat(freshAgents);
for (var i = 0; i < finalList.length; i++) {
var list = document.createElement('li');
list.appendChild(document.createTextNode(finalList[i]));
ul.appendChild(list);
}
var试剂=[“迪翁”、“Elisa”、“赛琳娜”、“肖纳”、“罗杰”];
var freshAgents=[“Gray”、“Shivani”、“Branne”、“Jason”、“FChad”];
var ul=document.createElement('ul');
ul.id=“aList”//给它一个身份证
对于(var i=0;i…节点
对于(var i=0;i
工作小提琴粘贴库中有HTML,它只是一个简单的
@EvanKennedy粘贴库链接是在我开始写这个答案后添加的,所以我没有看到。谢谢!:)非常感谢,我是stackflow的新手,需要找些时间来解决这个问题,顺便说一下,我还有另一个问题,现在我可以设置id了,但是ul是null,弹出的错误是无法读取null的属性“hasChildNodes”。是因为使用了create element吗?@ZiSean如果此解决方案对您有效,请确认并标记它好吗?感谢@user6003859编辑我的代码我对代码做了一些修改。但我还是不明白为什么它会起作用?有人能解释吗。
var agents = ["Dion", "Elisa", "Selena", "Shauna", "Rodger"];
var freshAgents = ["Gray", "Shivani", "Brainne", "Jason", "FChad"];
var ul = document.createElement('ul');
ul.id = "aList";// give it an ID
for (var i = 0; i < agents.length; i++) {
var list = document.createElement('li');
var node = document.createTextNode(agents[i]);
list.appendChild(node);
ul.appendChild(list);
}
document.getElementById("wrapper")
.appendChild(ul);
rList = document.getElementById("aList");//this is the same as ul variable declared above
if (rList.hasChildNodes()) {
console.log(rList.childNodes);//lists the <LI>...<LI> nodes
for (var i = 0; i < rList.childNodes.length; i++) {//Loop through the nodes not your agent array
rList.removeChild(rList.childNodes[i]);
}
}
var finalList = agents.concat(freshAgents);
for (var i = 0; i < finalList.length; i++) {
var list = document.createElement('li');
list.appendChild(document.createTextNode(finalList[i]));
ul.appendChild(list);
}