1のチェックボックスをクリックするとサンプル1だけ表示され、サンプル2とサンプル3は表示されないようにしたいです。1がチェックされると画像のように表示されるようにしたいです。
それと同じでサンプル2がクリックされたらサンプル1とサンプル3が表示されないようにといった感じです。。
分かる方、ご教示頂きたいです。
td {
border: solid 1px;
}
table {
border-collapse: collapse;
}
.up_down_border {
border-top-style: none;
border-bottom: none;
}
.bottom_border {
border-bottom: none;
}
.top_border {
border-top: none;
}
<body>
<div>
<input type="checkbox" onclick="sample1()">1のみ
</div>
<div>
<input type="checkbox" onclick="sample2()">2のみ
</div>
<div>
<input type="checkbox" onclick="sample3()">3のみ
</div>
<script>
var flag = false;
function sample1() {
flag = true;
sampleTable();
}
function sampleTable() {
const table = document.createElement("table");
const tableBody = {
rows: [
[{ value: "red" }, { value: "blue" }],
[{ value: "メニュー", rowSpan: 8 }],
[{ value: "サンプル1",className: "up_down_border" }],
[{ value: "サンプル1", className: "top_border" }],
[{ value: "サンプル2", className: "up_down_border" }],
[{ value: "サンプル2", className: "top_border" }],
[{ value: "サンプル3", className: "up_down_border" }],
[{ value: "サンプル3", className: "up_down_border" }],
[{ value: "サンプル3", className: "top_border" }],
[{ value: "メニュー", rowSpan: 8 }],
[{ value: "サンプル1", className: "up_down_border" }],
[{ value: "サンプル1", className: "top_border" }],
[{ value: "サンプル2", className: "up_down_border" }],
[{ value: "サンプル2", className: "top_border" }],
[{ value: "サンプル3", className: "up_down_border" }],
[{ value: "サンプル3", className: "up_down_border" }],
[{ value: "サンプル3", className: "top_border" }],
]
};
for (var i = 0; i < tableBody.rows.length; i++) {
const cols = tableBody.rows[i];
const tr = document.createElement("tr");
for (var j = 0; j < cols.length; j++) {
const col = cols[j];
const td = document.createElement("td");
td.innerHTML = col.value;
if (col.className) {
td.className = col.className;
}
if (col.rowSpan >= 0) {
td.rowSpan = col.rowSpan;
}
tr.appendChild(td);
}
table.appendChild(tr);
}
document.querySelector("body").append(table);
};
</script>
</body>