马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
如题,通过bigdiv.appendChild(hr)来添加,我想要的效果是每个类名为qujian的下面都增加一个hr标签 <!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title></title>
<style>
#bigdiv{
}
.qujian{
width: 300px;
margin: 50px 40%;
}
.qujian div{
width: 50px;
background-color: pink;
display: inline-block;
margin-right: 50px;
text-align: center;
line-height: 120%;
}
</style>
</head>
<body>
<button onclick="creatbiao()">创建柱形图</button>
<div id="bigdiv">
<div class="qujian"></div>
</div>
<script>
var xiabiao = 1//id下标
const hr = document.createElement("hr")
function creatbiao(){
const bigdiv = document.getElementById("bigdiv")
var qujian = document.getElementsByClassName("qujian")
var jidu = prompt("输入季度数") * 1
qujian[qujian.length-1].style.width = `${jidu * 100}px`
let bili = Math.floor(50/jidu)
qujian[qujian.length-1].style.margin = `50px ${bili}%`
for(let i = 1;i<=jidu;i++){
console.log(xiabiao)
let div = document.createElement("div")
let id = document.createAttribute("id")
id.value = `numb${xiabiao}`
qujian[qujian.length-1].appendChild(div)
div.setAttribute('id',id.value)
document.getElementById(`numb${xiabiao}`).style.height = prompt(`输入第${i}季度的数据`) + "px"
document.getElementById(`numb${xiabiao}`).innerHTML = (document.getElementById(`numb${xiabiao}`).style.height).slice(0,-2)
xiabiao++
}
//创建新区间
let divbig = document.createElement("div")
divbig.setAttribute("class","qujian")
bigdiv.appendChild(hr)
bigdiv.appendChild(divbig)
}
</script>
</body>
</html>
非常抱歉,我给出了错误的答案。实际上,`insertAdjacentElement()`是一个HTML元素对象的方法,并不适用于HTMLCollection对象。对于HTMLCollection对象,我们需要遍历每个元素并分别添加`hr`元素。
以下是修改后的代码:
const qujianList = document.getElementsByClassName("qujian");
for (let i = 0; i < qujianList.length; i++) {
const qujian = qujianList[i];
const hrExists = qujian.nextElementSibling && qujian.nextElementSibling.tagName === 'HR';
if (!hrExists) {
const hr = document.createElement("hr");
qujian.parentNode.insertBefore(hr, qujian.nextSibling);
}
}
这段代码会为每个类名为`qujian`的元素后面插入一个分割线元素`hr`。请尝试一下这个修改后的代码,并且看看是否解决了问题。对于每个`qujian`元素,我们检查它的下一个兄弟节点是否已经是一个`hr`元素,如果不是,则通过`insertBefore()`方法在该兄弟节点之前插入新的`hr`元素。
以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。
|