我想在一行中添加一个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>
答案 0 :(得分:1)
您可以使用.closest()
使其缩短一点,如下所示:
$(function() {
$("td.commandText pre").each(function(index) {
$(this).closest('tr').prev().attr('Title', $(this).text());
});
});
除此之外,在这里获得的优雅并不多。