为了账号安全,请及时绑定邮箱和手机立即绑定

根据其他父级删除另一个父级中的表格行元素

根据其他父级删除另一个父级中的表格行元素

蛊毒传说 2022-01-07 21:22:27
在将其评论为重复之前,请仔细阅读。我有一个看起来像这样的表结构:          <td>              <table class="schedule_day_table">                  <tr>                      <td>1.</td>                      <td><div>GO TO SCHOOL</div></td>                  </tr>                  <tr>                      <td>.</td>                      <td><div></div></td>                  </tr>                  <tr>                      <td>3.</td>                      <td><div>READ A BOOK</div></td>                  </tr>              </table>          </td>          <td>              <table class="schedule_time_table">                  <tr><td>08:30 - 09:15</td></tr>                  <tr><td>09:25 - 10:10</td></tr>                  <tr><td>11:30 - 12:15</td></tr>              </table>          </td>如您所见,我有时间表打印出 schedule_day_table 1 和 3,但从不打印出 2,因为当时没有时间表,但 schedule_time_table 始终打印出所有时间。我想要实现的是,如果 schedule_day_table tr td 中只有点 (.),我想删除 schedule_time_table tr 元素,我想得到这样的输出:<td>              <table class="schedule_day_table">                  <tr>                      <td>1.</td>                      <td><div>GO TO SCHOOL</div></td>                  </tr>                  <tr>                      <td>3.</td>                      <td><div>READ A BOOK</div></td>                  </tr>              </table>          </td>          <td>              <table class="schedule_time_table">                  <tr><td>08:30 - 09:15</td></tr>                  <tr><td>11:30 - 12:15</td></tr>              </table>          </td>在我的情况下,这必须在 JS 中完成。
查看完整描述

2 回答

?
小唯快跑啊

TA贡献1863条经验 获得超2个赞

如果您将它挂在文档加载上,这应该可以工作。


const dayRows = document.querySelectorAll('.schedule_day_table tr');

const timeRows = document.querySelectorAll('.schedule_time_table tr');


dayRows.forEach((row, i) => {

  //select first cell of the row

  let td = row.querySelector('td');

  if(td.innerHTML == ".") {

     row.parentNode.removeChild(row);

     timeRows[i].parentNode.removeChild(timeRows[i]);

  }

});

<td>

              <table class="schedule_day_table">

                  <tr>

                      <td>1.</td>

                      <td><div>GO TO SCHOOL</div></td>

                  </tr>

                  <tr>

                      <td>.</td>

                      <td><div></div></td>

                  </tr>

                  <tr>

                      <td>3.</td>

                      <td><div>READ A BOOK</div></td>

                  </tr>

              </table>

          </td>


          <td>

              <table class="schedule_time_table">

                  <tr><td>08:30 - 09:15</td></tr>

                  <tr><td>09:25 - 10:10</td></tr>

                  <tr><td>11:30 - 12:15</td></tr>

              </table>

          </td>


查看完整回答
反对 回复 2022-01-07
?
慕雪6442864

TA贡献1812条经验 获得超5个赞

       const scheduleDayTableRows = Array.from(document.querySelectorAll(".schedule_day_table tr"));


        scheduleDayTableRows.map((row) => {

            if (row.querySelector("td").innerHTML === ".") {

                row.remove();

            }

        })

它是如何工作的?

首先,您需要从第一个表中选择所有表行,然后您应该从这些行中迭代并找到第一个嵌套的 td。如果它的innerHTML 等于“。” 您可以使用 row.remove() 删除此行


查看完整回答
反对 回复 2022-01-07
  • 2 回答
  • 0 关注
  • 163 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信