gpt4 book ai didi

javascript - 如何使用 javascript 以网格格式(行和列)动态添加按钮?

转载 作者:行者123 更新时间:2023-11-30 14:35:34 24 4
gpt4 key购买 nike

我需要根据一台服务器的响应动态地连续显示按钮(按钮之间的空间很小)。如果按钮越过屏幕,需要在下一行显示按钮。我想使用如下表格。

<!DOCTYPE html>
<html>

<head>
<style>
td {
width: 200px;
height: 200px;
}

button {
width: 100%;
height: 100%;
}
</style>
</head>

<body>

<p>Table with cellspacing:</p>
<table cellspacing="50">
<tr>
<td><button id='b1' onclick='clickbt("b2")'>Month</button></td>
<td><button id='b2' onclick='clickbt("b3")'>Savings</button></td>
</tr>
<tr>
<td><button id='b3' onclick='clickbt("b4")'>January</button></td>
<td><button id='b4' onclick='clickbt("b1")'>$100</button></td>
</tr>
</table>

<script>
function clickbt(id) {
document.getElementById(id).focus();
}
</script>
</body>

即使代码正在创建按钮,我还是将它硬编码为每行两个按钮,并将列硬编码为 2。但是由于我需要根据服务器的响应动态创建按钮,是否有任何解决方案使用 javascript 而不是 html 中的静态行和列?

最佳答案

您可以使用 JS 和 CSS 来解决您的问题。

使用 JS,您可以创建和附加您需要的任意数量的元素。我做了一个小片段来 mock 这个。应根据服务器的响应动态替换 var buttonsToGenerate

通过 CSS,您可以使用 flexbox 布局来制作更动态且最重要的响应式布局

希望这有帮助:)

function generate(){
let buttonsToGenerate = Math.floor(Math.random() * (3)) + 1;
for(let i = 0; i < buttonsToGenerate; i++){
var btn = document.createElement("button");
var t = document.createTextNode("button text");
btn.appendChild(t);
document.getElementById('button-holder').appendChild(btn);
}
}
p {
display: inline;
}

p + button {
width: auto;
height: auto;
}
button {
width: 200px;
height: 200px;
}

#button-holder {
display: flex;
width: 100%;
height: auto;
flex-wrap: wrap;
justify-content: space-between;
}
<!DOCTYPE html>

<body>

<p>This will generate buttons between 1 - 5 per click:</p><button onclick="generate()">RUN</button>
<div id="button-holder"></div>
<script>

</script>
</body>

关于javascript - 如何使用 javascript 以网格格式(行和列)动态添加按钮?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50479266/

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