我是初学者,第一次遇到这样的问题。
我正在使用 jQuery 提供的 each 方法迭代一个类。该页面有许多具有相同名称的类。所以我们可以预期它可能是 15 次迭代。
每次迭代都有不同的值。
$(".book").each(function(n) {
var result = $(this
我必须得到最后一个 TD 值列表。所以我的选择是使用
$(".book tbody tr:last")
但我认为这个东西在每个环境中都不起作用,因为它不知道当前正在处理哪个上下文。
$(this tbody tr:last) 也不起作用。我如何设计一个可行的选择器?
<div class = "book">
<p class = "chapter">
<table>
<tbody>
<tr>
<td>General</td>
<td>
<b>Buck</b>
</td>
</tr>
<tr>
<td>General</td>
<td>List</td>
</tr>
</tbody>
</table>
</p>
</div>
最佳答案
假设您在此处发布的 HTML 是一本书,并且还有许多其他完全相同的书,并且您想要访问最后一本书 <tr>
在他们每个人中,这应该有效:
$('div.book tbody tr:last-child').each(function() {
var value = $(this).find('td').eq(1).text();
});
value
然后将是上面 HTML 的“列表”,如果您有多个 <div>
它会像您预期的那样迭代最后一个 <tr>
他们中的每一个。
这里的关键是我们使用的是 last-child
而不是简单的 last
. last
文档说它将匹配最后选择的元素;我们不想要那样。我们想要的是 last-child
描述:匹配作为其父元素的最后一个子元素的所有元素。这种区别在这种特殊情况下很重要,因为我们只需要我们当前所在的特定表的最后一个子项,而不需要整体的最后结果。
如果你想要最后一个 <td>
最后一个<tr>
,我们甚至可以这样做:
$('div.book tbody tr:last-child td:last-child').each(function() {
var value = $(this).text();
});
这个选择器会选择最后一个 child <tr>
并选择其适当的 last-child <td>
.如果您不关心第一个 <td>
的值是什么,这将是最好的是。如果你这样做,那么你想使用第一个。
关于javascript - jQuery:我有一个类,我正在对每个类进行迭代。每回合的结果都不一样。如何使用 this 并访问值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/859496/