假设我有一个这样的表:
<table>
<tr><td class="this-is-a-label">Label Cell</td></tr>
<tr><td>Detail 1</td></tr>
<tr><td class="selected">Detail 2</td></tr>
</table>
Run Code Online (Sandbox Code Playgroud)
我希望能够从"选定"单元格中获取之前的"标签单元格".
我的jQuery脚本应该是这样的:
$('.selected').each(function() {
var label = $(this).parent().prev('tr td.this-is-a-label');
//... do what I need with the label ...
});
Run Code Online (Sandbox Code Playgroud)
但它不起作用.
有没有人有什么建议?
Nic*_*ver 14
你可以这样做:
$('.selected').each(function() {
var label = $(this).closest('tr').prevAll('tr:has(td.this-is-a-label):first')
.children('td.this-is-a-label');
//... do what I need with the label ...
});
Run Code Online (Sandbox Code Playgroud)
这不是理想的,它是一个相当昂贵的DOM遍历,如果你可以保证它总是落后2行,你可以这样做:
$(this).closest('tr').prev().prev().children('td.this-is-a-label')
Run Code Online (Sandbox Code Playgroud)
...这要快得多,这取决于你对标记的假设和保证,如果有任何确定性,你肯定可以加快速度.
怎么样:
var label =
$('.selected').parent().prevAll('tr').children('td.this-is-a-label')[0];
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
28069 次 |
| 最近记录: |