gpt4 book ai didi

javascript - 在 Javascript 中填充的可折叠项将不起作用

转载 作者:行者123 更新时间:2023-12-04 14:59:02 27 4
gpt4 key购买 nike

我正在尝试创建一个在 Javascript 中填充并写入 HTML 的可折叠对象,但由于某种原因,结果没有按应有的方式展开/折叠。大多数代码都可以在 W3School 上找到并经过编辑以适合我的目的。

HTML:

<div id="results">
</div>

CSS:

.collapsible {
background-color: #777;
color: white;
cursor: pointer;
padding: 18px;
width: 100%;
border: none;
text-align: left;
outline: none;
font-size: 15px;
}

.active, .collapsible:hover {
background-color: #555;
}

.collapsible:after {
content: '\002B';
color: white;
font-weight: bold;
float: right;
margin-left: 5px;
}

.active:after {
content: "\2212";
}

.content {
padding: 0 18px;
max-height: 0;
overflow: hidden;
transition: max-height 0.2s ease-out;
background-color: #f1f1f1;
}

JavaScript:

// for each JSON object in the results array
for (index = 0; index < results.length; index++) {
// add on to html with each NICE Role Title
html += `<button class="collapsible">${results[index].NICE_Role_Title.value}</button>
<div class="content">
<p>${results[index].NICE_Role_Description.value}</p>
</div>`
}

// send html to the front end (id = test_results)
document.getElementById('results').innerHTML = html;

//Collapsible
var coll = document.getElementsByClassName("collapsible");
var i;

for (i = 0; i < coll.length; i++) {
coll[i].addEventListener("click", function() {
this.classList.toggle("active");
var content = this.nextElementSibling;
if (content.style.maxHeight){
content.style.maxHeight = null;
} else {
content.style.maxHeight = content.scrollHeight + "px";
}
});
}

最佳答案

如果您将此添加到您的 javascript 的顶部,它将起作用,

let html = '';
let results = [{NICE_Role_Title: {value: 'test1'}, NICE_Role_Description: {value: 'desc1'}},
{NICE_Role_Title: {value: 'test2'}, NICE_Role_Description: {value: 'desc2'}}];

jsfiddle

您的示例缺少一些数据来填充可折叠。

关于javascript - 在 Javascript 中填充的可折叠项将不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67328870/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com