Javascript 添加表会停止js显示/隐藏的工作
我在网页上有一个show/hide函数,我想在其中改进布局,但是当我添加了一个新表以放入数据的标题时,show/hide停止了工作 原始代码的一个片段是:Javascript 添加表会停止js显示/隐藏的工作,javascript,Javascript,我在网页上有一个show/hide函数,我想在其中改进布局,但是当我添加了一个新表以放入数据的标题时,show/hide停止了工作 原始代码的一个片段是: <table id="cart-list"> <div class="col-sm-12 col-md-12 col-lg-12 col-xl-12"> <tr class="cl-group"> <td class="cl-sh" title="Show [+] or Hid
<table id="cart-list">
<div class="col-sm-12 col-md-12 col-lg-12 col-xl-12">
<tr class="cl-group">
<td class="cl-sh" title="Show [+] or Hide [-] this lists' products"> </td>
<td colspan="2">Cart List One:
<table id="cl-chg-1" class="cl-other cl-chg">
<tr>
<td>List Name:</td>
<td><input type="text" name="group_name[1]" value="Cart List One" maxlength="255" /></td>
</tr>
<tr>
<td>List Comments:</td>
<td><input type="text" name="group_comments[1]" maxlength="255" /></td>
</tr>
<tr>
<td><button type="button" onclick="cancelGroupEdit();">Cancel</button></td>
<td><button type="submit" name="change" value="1">Go</button></td>
</tr>
</table>
</td>
</tr>
</div>
<tr>
<td>Stuff Here</td>
</tr>
<tr>
<td>Stuff Here</td>
</tr>
</table>
购物车清单一:
名单名称:
列出评论:
取消
去
这里的东西
这里的东西
使用的js是
var groups = document.getElementsByClassName("cl-sh");
if (groups) {
for (var i = 0; i < groups.length; i++) {
groups[i].onclick = function() {
this.classList.toggle('cl-a');
var productsDisplay = '';
if (this.classList.contains('cl-a')) {
productsDisplay = 'none';
}
var nextRow = this.parentNode.nextElementSibling;
while (nextRow) {
if (nextRow.classList.contains('cl-group')) {
break;
}
nextRow.style.display = productsDisplay;
nextRow = nextRow.nextElementSibling;
}
}
}
}
var-groups=document.getElementsByClassName(“cl-sh”);
if(组){
对于(变量i=0;i
这里可以看到小提琴:
此处可以看到添加了附加表代码的中断函数:
我真的不明白为什么增加一个表会破坏函数
对此有什么建议吗?当您单击+/-单元格时,JS函数会做什么 首先,它切换单击的单元格是否包含
cl-a
类。然后,它运行同一个表中所有剩余的行,根据需要显示或隐藏它们,直到找到一个具有classcl group
的行,或者到达该表中的行的末尾
注意最后一段中的同一个词
在你的第一把小提琴中,你有一张桌子。在第二个提琴中,您有两个,并且您希望切换显示的行与切换按钮不在同一个表中。这就是为什么单击“切换”按钮时它们不显示/隐藏的原因
我不确定显示/隐藏行的具体要求,所以我不打算提出修复方案。然而,了解问题所在可能有助于你自己找到解决办法。@Roy与div无关。即使将它们完全移除,也不起作用。请参阅@LukeThanks以了解其运行过程的解释。本质上我希望它以相同的方式执行,只是它将隐藏第二个表的内容。@Stephen3071:在这种情况下,最简单的方法可能是在第二个表上放置一个
id
,并替换行var nextRow=this.parentNode.nextElementSibling
withvar nextRow=document.getElementById(“此处为您的表id”).tBodies[0]。行[0]代码>。