向上遍历,然后向下遍历 DOM
Traversing up, then back down the DOM
我有一个点击事件设置,在它的代码块中我存储了某些同级元素的值。现在,如果我想要在单击 .play
按钮后 .title
范围内的文本,我必须向上移动两个级别并返回到 .title
.
我想知道从包装在两个或更多父 div 中的兄弟元素访问信息的更好方法是什么?
HTML
<table>
<tr>
<td>
<button class="play">Play</button>
</td>
<td>
<span class="number">01.</span>
</td>
<td>
<span class="title">Track 1</span>
</td>
</tr>
<tr>
<td>
<button class="play">Play</button>
</td>
<td>
<span class="number">02.</span>
</td>
<td>
<span class="title">Track 2</span>
</td>
</tr>
</table>
JS
$(function() {
$(".play").on("click", function() {
var number = $(this).parent().parent().find(".number").text(),
title = $(this).parent().parent().find(".title").text();
console.log(number + title);
});
});
您可以使用 closest()
回到普通 parent
var number = $(this).closest('tr').find(".number").text(),
title = $(this).closest('tr').find(".title").text();
您可以使用 jQuery 的 closest()
函数。
var number = $(this).closest('tr').find(".number").text(),
title = $(this).closest('tr').find(".title").text();
我有一个点击事件设置,在它的代码块中我存储了某些同级元素的值。现在,如果我想要在单击 .play
按钮后 .title
范围内的文本,我必须向上移动两个级别并返回到 .title
.
我想知道从包装在两个或更多父 div 中的兄弟元素访问信息的更好方法是什么?
HTML
<table>
<tr>
<td>
<button class="play">Play</button>
</td>
<td>
<span class="number">01.</span>
</td>
<td>
<span class="title">Track 1</span>
</td>
</tr>
<tr>
<td>
<button class="play">Play</button>
</td>
<td>
<span class="number">02.</span>
</td>
<td>
<span class="title">Track 2</span>
</td>
</tr>
</table>
JS
$(function() {
$(".play").on("click", function() {
var number = $(this).parent().parent().find(".number").text(),
title = $(this).parent().parent().find(".title").text();
console.log(number + title);
});
});
您可以使用 closest()
回到普通 parent
var number = $(this).closest('tr').find(".number").text(),
title = $(this).closest('tr').find(".title").text();
您可以使用 jQuery 的 closest()
函数。
var number = $(this).closest('tr').find(".number").text(),
title = $(this).closest('tr').find(".title").text();