html 使用JavaScript内联隐藏当前表行

643ylb08  于 2023-04-04  发布在  Java
关注(0)|答案(1)|浏览(134)

我有下面的html,我不能修改。(它正在自动生成)

<table>
  <tbody>
    <tr>
      <th>UserName</th>
      <td>Bob</td>
    </tr>
    <tr>
      <th>Password</th>
      <td>Fred</td>
    </tr>
  </tbody>
</table>

这将显示:

UserName  Bob
Password  Fred

但是,我可以在td区域内插入代码。我想使用javascript或css隐藏父行。

示例

例如,如果我想隐藏第二行,我可以插入javascript:

<table>
  <tbody>
    <tr>
      <th>UserName</th>
      <td>Bob</td>
    </tr>
    <tr>
      <th>Password</th>
      <td>Fred <script type="text/javascript">document.parentrow.hide();</script> </td>
    </tr>
  </tbody>
</table>

然后它就应该显示

UserName  Bob

说明

  • 函数document.parentrow.hide();不工作,但它只是为了显示我正在寻找的一个例子。我想一个函数,隐藏与该td相关的当前行。
  • 我不能添加自定义类或id到tr标签,因为我没有控制的html的那部分。
  • 我确实看了下面的链接How may I reference the script tag,但它只是一个一般性的主题。它没有回答我关于表行的问题。
qlvxas9a

qlvxas9a1#

使用document closest标签非常简单,如下所示。我只是将其添加到相应的td标签中:

<td>Fred
  <script type="text/javascript">
    var myscript = document.currentScript;
    var myrow = myscript.closest('tr');
    myrow.hidden = true;
  </script>
</td>
<table>
  <tbody>
    <tr>
      <th>UserName</th>
      <td>Bob</td>
    </tr>
    <tr>
      <th>Password</th>
      <td>Fred
        <script type="text/javascript">
          var myscript = document.currentScript;
          var myrow = myscript.closest('tr');
          myrow.hidden = true;
        </script>
      </td>
    </tr>
  </tbody>
</table>

相关问题