如何隐藏<td>?
How to hide <td>?
所以我有这些代码(只有必要的部分)
这是按钮所在的位置:
<td id="Assault">
<button onclick="hideassault()">Assault</button>
</td>
<td id="AssaultWP">
所有这些图像(实际上是按钮)都在一个 table 单元格中,并且它们都具有相同的 ID
#AssaultWP{
display:block;
}
这个也很简单 css 这很重要
和我认为可行的脚本:
function hideassault() {
var hideA = document.getElementById("AssaultWP");
if (hideA.style.display === "none") {
hideA.style.display = "block";
} else {
hideA.style.display = "none";
}
}
我想既然所有的 td 都有相同的 ID,它会隐藏所有的,但它实际上只隐藏了第一个单元格,随之而来的是我的问题:
如果它们具有相同的 ID,它不应该隐藏所有单元格吗?我做错了什么?有人可以帮我做吗?
提前感谢您的帮助!
ID 应该是唯一的。在这种你必须处理多个东西的情况下使用 classes。
我假设您将 class 命名为 'AssaultWP'。
js 函数看起来像
function hideassault() {
var hideA = document.getElementsByClassName("AssaultWP");
var n = hideA.length;
if (document.getElementsByClassName("AssaultWP")[0].style.display === "none") {
for(i=0;i<n;i++){
hideA[i].style.display = "block";
}
} else {
for(i=0;i<n;i++){
hideA[i].style.display = "none";
}
}
}
这是一个fiddle。
让我来帮忙,所以首先请记住,您正在使用 td
但从未定义其父元素 table
,因此这将是第一个修复方法。
示例:
<table>
<tr>
<th>Header</th> <!-- table header -->
</tr>
<tr>
<td>data/information</td> <!-- table data/information -->
</tr>
</table>
第二个问题正如我昨天评论的那样,id
是一个唯一标识符。如果所有名称都相同,则使用 classes。
这就引出了第三个问题,document.getElementsByClassName
returns 一个数组类型的对象= HTMLCollection
.
因此 querySelectorAll
在这种情况下将帮助您 select 每个元素的 class 名称。
示例:
function hideAssault() {
[].forEach.call(document.querySelectorAll('.assault_r'), function (sh) {
if (sh.style.display === "none") {
sh.style.display = "table-cell"; //block , not preferred , but up to you
} else {
sh.style.display = "none";
}
});
}
table, th, td {
border: 1px solid black;
}
td {
display: table-cell; /* block , not preferred , but up to you*/
}
<table>
<tbody>
<tr>
<td>
<button onclick="hideAssault()">Assault</button>
</td>
</tr>
<tr>
<td class="assault_r">Assault</td>
<td class="assault_r">Assault2</td>
<td class="assault_r">Assault3</td>
<td class="assault_r">Assault4</td>
<td class="assault_r">Assault5</td>
<td class="assault_r">Assault6</td>
<td class="assault_r">Assault7</td>
</tr>
</tbody>
</table>
所以我有这些代码(只有必要的部分) 这是按钮所在的位置:
<td id="Assault">
<button onclick="hideassault()">Assault</button>
</td>
<td id="AssaultWP">
所有这些图像(实际上是按钮)都在一个 table 单元格中,并且它们都具有相同的 ID
#AssaultWP{
display:block;
}
这个也很简单 css 这很重要
和我认为可行的脚本:
function hideassault() {
var hideA = document.getElementById("AssaultWP");
if (hideA.style.display === "none") {
hideA.style.display = "block";
} else {
hideA.style.display = "none";
}
}
我想既然所有的 td 都有相同的 ID,它会隐藏所有的,但它实际上只隐藏了第一个单元格,随之而来的是我的问题: 如果它们具有相同的 ID,它不应该隐藏所有单元格吗?我做错了什么?有人可以帮我做吗? 提前感谢您的帮助!
ID 应该是唯一的。在这种你必须处理多个东西的情况下使用 classes。 我假设您将 class 命名为 'AssaultWP'。 js 函数看起来像
function hideassault() {
var hideA = document.getElementsByClassName("AssaultWP");
var n = hideA.length;
if (document.getElementsByClassName("AssaultWP")[0].style.display === "none") {
for(i=0;i<n;i++){
hideA[i].style.display = "block";
}
} else {
for(i=0;i<n;i++){
hideA[i].style.display = "none";
}
}
}
这是一个fiddle。
让我来帮忙,所以首先请记住,您正在使用 td
但从未定义其父元素 table
,因此这将是第一个修复方法。
示例:
<table>
<tr>
<th>Header</th> <!-- table header -->
</tr>
<tr>
<td>data/information</td> <!-- table data/information -->
</tr>
</table>
第二个问题正如我昨天评论的那样,id
是一个唯一标识符。如果所有名称都相同,则使用 classes。
这就引出了第三个问题,document.getElementsByClassName
returns 一个数组类型的对象= HTMLCollection
.
因此 querySelectorAll
在这种情况下将帮助您 select 每个元素的 class 名称。
示例:
function hideAssault() {
[].forEach.call(document.querySelectorAll('.assault_r'), function (sh) {
if (sh.style.display === "none") {
sh.style.display = "table-cell"; //block , not preferred , but up to you
} else {
sh.style.display = "none";
}
});
}
table, th, td {
border: 1px solid black;
}
td {
display: table-cell; /* block , not preferred , but up to you*/
}
<table>
<tbody>
<tr>
<td>
<button onclick="hideAssault()">Assault</button>
</td>
</tr>
<tr>
<td class="assault_r">Assault</td>
<td class="assault_r">Assault2</td>
<td class="assault_r">Assault3</td>
<td class="assault_r">Assault4</td>
<td class="assault_r">Assault5</td>
<td class="assault_r">Assault6</td>
<td class="assault_r">Assault7</td>
</tr>
</tbody>
</table>