javascript - 根据其他父项删除另一个父项中的表行元素

标签 javascript jquery

在将此评论为重复之前,请仔细阅读。

我有一个如下所示的表结构:

          <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 中完成。

最佳答案

如果你在文档加载时 Hook 它,这应该可以工作。

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>

关于javascript - 根据其他父项删除另一个父项中的表行元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58994512/

相关文章:

jquery - Rails 3.2 的 github 预览功能

php - 发送键来测试 Behat 中的选项卡索引和关闭选项卡(MacOSX、Behat、Chromedriver、Selenium2)

javascript - jQuery 脚本清除表单数据但应该保留一个输入

javascript - 我可以分享一个 HTML 播放器吗?

javascript - 如何检查嵌套数组是否包含值?

javascript - 重新加载或刷新 JSON 和 HTML div 加载顺序

jquery - 如何在 jQuery 中重置切换?

javascript - 如果未选中子节点,则未选中父节点

javascript - 在 JavaScript 中返回一个数组

javascript - 将 'Grooveshark' 条目添加到 Google 的黑色导航栏