1

我想向一行添加一个 Title 属性,并且该值是从隐藏的行的兄弟中检索的,除非单击。当某些屏幕没有带有文本的隐藏行时,我想让它足够通用以处理。

这是第一个有效的过程:

$(function() {
  $("td.commandText pre").each(function(index) {
    $(this).parent().parent().prev().attr('Title', $(this).text());
  });
});

有什么想法可以让它更优雅吗?

这是我正在使用的 HTML 表的示例:

<table class="maingrid">
  <thead>
    <tr>
      <th>Session ID</th>
      <th>User Name</th>
      <th>Start Time</th>
      <th>End Time</th>
    </tr>
  </thead><tbody>
    <tr class="record">
      <td id="174">174</td>
      <td>user1</td>
      <td>8/2/2010 4:00:09 PM</td>
      <td></td>
  </tr>
  <tr>
     <td class="details hide commandText" colspan="4">
       <pre>Sample Text to show as a tooltip</pre></td>
     </tr>
  <tr>
     <td class="details hide" colspan="4" style="color:red"><pre>no errors</pre></td>
  </tr>
    <tr class="record">
      <td id="175">175</a></td>
      <td>user1</td>
      <td>8/2/2010 4:00:09 PM</td>
      <td></td>
  </tr>
  <tr>
     <td class="details hide commandText" colspan="4">
       <pre>Sample Text to show as a tooltip</pre></td>
     </tr>
  <tr>
     <td class="details hide" colspan="4" style="color:red"><pre>no errors</pre></td>
  </tr>
</tbody>
</table>
4

1 回答 1

1

您可以使用.closest()使其更短一些,如下所示:

$(function() {
  $("td.commandText pre").each(function(index) {
    $(this).closest('tr').prev().attr('Title', $(this).text());
  });
});

除此之外,这里没有更多的优雅。

于 2010-08-03T18:44:24.197 回答