代码之家  ›  专栏  ›  技术社区  ›  klewis

如何从表中删除表行元素的模式?

  •  1
  • klewis  · 技术社区  · 5 年前

    如果我有下表,我不能手动触摸,但可以将javascript应用到…

    <table data="customTable">
      <tr>
        <td>item 1</td>
      </tr>
      <tr>
        <td height="10"></td>
      </tr>
      <tr>
        <td>item 2</td>
      </tr>
      <tr>
        <td height="10"></td>
      </tr>
    </table>
    

    …当DOM完全加载时,如何删除 每一个 的实例 <tr><td height="10"></td></tr> 从上表通过jquery 原始javascript?我根本不需要那个行,它会给我带来设计问题。这是我第一次尝试学习如何替换完整的元素模式。
    希望这可以通过javascript实现?

    3 回复  |  直到 5 年前
        1
  •  1
  •   gearsdigital    5 年前

    这样就可以了。

    JQuery

    $('td[height="10"]').parent().remove();
    

    https://jsfiddle.net/uzv3fn2e/1/

    香草JS

    Array.from(document.querySelectorAll('td[height="10"]')).forEach(td => td.parentNode.remove());
    

    https://jsfiddle.net/t7y6aqc5/

        2
  •  1
  •   Nenad Vracar    5 年前

    你可以用 :has() 要选择的选择器 tr td 具有特定属性

    $("tr:has(td[height='10'])").remove()
    

    $("tr:has(td[height='10'])").remove()
    <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
    <table data="customTable">
      <tr>
        <td>item 1</td>
      </tr>
      <tr>
        <td height="10"></td>
      </tr>
      <tr>
        <td>item 2</td>
      </tr>
      <tr>
        <td height="10"></td>
      </tr>
    </table>
        3
  •  1
  •   Aziz.G    5 年前

    如果不使用jquery,javascript也可以 remove()

    document.querySelectorAll("td").forEach(el => el.getAttribute("height") === "10" && el.parentNode.remove())
    <table data="customTable">
      <tr>
        <td>item 1</td>
      </tr>
      <tr>
        <td height="10"></td>
      </tr>
      <tr>
        <td>item 2</td>
      </tr>
      <tr>
        <td height="10"></td>
      </tr>
    </table>