
本文将详细介绍如何使用 JavaScript 实现点击表格单元格,动态显示和隐藏另一个表格的功能。我们将首先分析原始代码存在的问题,然后提供两种解决方案:修正内联事件处理以及使用 addEventListener 方法,并提供完整的代码示例,旨在帮助开发者更高效地实现动态网页效果。
原始代码尝试通过在 PHP 生成的表格的 <td> 元素上添加 onclick 事件来调用 JavaScript 函数 show(),以控制另一个表格的显示和隐藏。然而,由于 PHP 中字符串的引号处理不当,导致生成的 HTML 代码中 onclick 属性的值不正确,从而导致 JavaScript 函数无法正确执行。
在 PHP 中生成 HTML 代码时,需要特别注意引号的正确使用。为了避免引号冲突,可以使用单引号包裹 JavaScript 函数的参数,或者使用反斜杠 \ 转义双引号。
以下是修正后的 PHP 代码示例:
立即学习“Java免费学习笔记(深入)”;
<?php
// ... (你的 PHP 代码) ...
for ($i=0; $i < count($Kontakte); $i++) {
echo "<tr> <td><em>".($i+1)."</em></td>" . "<td style='text-align: center'>".$Kontakte[$i][0]."</td>" .
"<td>".$Kontakte[$i][1]."</td>" . "<td>".$Kontakte[$i][2]."</td>" . "<td>".$Kontakte[$i][3]."</td>" .
"<td>".$Kontakte[$i][4]."</td>" . "<td>".$Kontakte[$i][5]."</td>" . "<td>".$Kontakte[$i][6]."</td>" . "<td onclick=\"show('example');\">".$Kontakte[$i][7]."</td>" . " <td></tr>";
}
?>在这个修正后的代码中,我们将 onclick 属性的值修改为 show('example'),使用单引号包裹了参数 example,从而避免了与 HTML 属性的双引号冲突。
系统前端采用可视化布局,能自动适应不同尺寸屏幕,一起建站,不同设备使用,免去兼容性烦恼。系统提供列表、表格、地图三种列表显示方式,让用户以最快的速度找到所需行程,大幅提高效率。系统可设置推荐、优惠行程,可将相应行程高亮显示,对重点行程有效推广,可实现网站盈利。系统支持中文、英文,您还可以在后台添加新的语言,关键字单独列出,在后台即可快速翻译。
150
另一种更现代、更推荐的解决方案是使用 addEventListener 方法来绑定事件处理函数。这种方法可以避免内联事件处理的一些问题,例如代码可读性差、不易维护等。
以下是使用 addEventListener 方法的 JavaScript 代码示例:
document.addEventListener('DOMContentLoaded', function() {
var tds = document.querySelectorAll(".showExample");
tds.forEach(function(td) {
td.addEventListener('click', function(e) {
var x = document.querySelector("#example");
if (x.style.visibility === "hidden") {
x.style.visibility = "visible";
} else {
x.style.visibility = "hidden";
}
});
});
});对应的 HTML 代码需要修改,将需要绑定点击事件的 <td> 元素添加一个 class,例如 showExample:
<?php
// ... (你的 PHP 代码) ...
for ($i=0; $i < count($Kontakte); $i++) {
echo "<tr> <td><em>".($i+1)."</em></td>" . "<td style='text-align: center'>".$Kontakte[$i][0]."</td>" .
"<td>".$Kontakte[$i][1]."</td>" . "<td>".$Kontakte[$i][2]."</td>" . "<td>".$Kontakte[$i][3]."</td>" .
"<td>".$Kontakte[$i][4]."</td>" . "<td>".$Kontakte[$i][5]."</td>" . "<td>".$Kontakte[$i][6]."</td>" . "<td class='showExample'>".$Kontakte[$i][7]."</td>" . " <td></tr>";
}
?>同时,为了在页面加载时隐藏目标表格,需要在 CSS 中设置其初始 visibility 属性为 hidden:
<table class="grade_Fruehauf" style="visibility:hidden" id="example">
<tr>
<th>Fruehauf</th>
</tr>
<tr>
<th>Deutsch</th>
<th>3.5</th>
</tr>
<tr>
<th>Math</th>
<th>3.5</th>
</tr>
<tr>
<th>Biologie</th>
<th>3.5</th>
</tr>
<tr>
<th>Französisch</th>
<th>4</th>
</tr>
<tr>
<th>Durchschnitt</th>
<th style="border-top:solid;">3.6
</th>
</tr>
</table><!DOCTYPE html>
<html>
<head>
<title>表格点击显示与隐藏</title>
<style>
.grade_Fruehauf {
width: 80%;
min-width: 550px;
}
</style>
</head>
<body>
<table>
<tr><td class="showExample">Example</td></tr>
<tr><td class="showExample">Example</td></tr>
</table>
<div class="Note">
<div style="width: 80%; min-width: 550px">
<table class="grade_Fruehauf" style="visibility:hidden" id="example">
<tr>
<th>Fruehauf</th>
</tr>
<tr>
<th>Deutsch</th>
<th>3.5</th>
</tr>
<tr>
<th>Math</th>
<th>3.5</th>
</tr>
<tr>
<th>Biologie</th>
<th>3.5</th>
</tr>
<tr>
<th>Französisch</th>
<th>4</th>
</tr>
<tr>
<th>Durchschnitt</th>
<th style="border-top:solid;">3.6
</th>
</tr>
</table>
<div>
</div>
</div>
</div>
<script>
document.addEventListener('DOMContentLoaded', function() {
var tds = document.querySelectorAll(".showExample");
tds.forEach(function(td) {
td.addEventListener('click', function(e) {
var x = document.querySelector("#example");
if (x.style.visibility === "hidden") {
x.style.visibility = "visible";
} else {
x.style.visibility = "hidden";
}
});
});
});
</script>
</body>
</html>通过本文的介绍,相信你已经掌握了使用 JavaScript 实现表格点击显示与隐藏的两种方法。在实际开发中,可以根据具体情况选择合适的解决方案。
以上就是使用 JavaScript 实现表格的点击显示与隐藏的详细内容,更多请关注php中文网其它相关文章!
每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号