javascript - jQuery:我有一个类,我正在对每个类进行迭代。每回合的结果都不一样。如何使用 this 并访问值?

标签 javascript jquery

我是初学者,第一次遇到这样的问题。

我正在使用 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/

相关文章:

javascript - 从 android webview 触发 JavascriptInterface

javascript - 编写包含 HTML 的长 Javascript 变量的最佳方法

javascript - 这件事是新的

javascript - 如何使用带标志的语言获取下拉列表当前值?

jquery - 根据复选框状态修改父类

jquery - 重置日期范围限制

java - 从 Java (Groovy) 类调用 javascript 函数

javascript - 如何使用 select2 初始化默认值并触发 ajax 请求(select2 :select)?

php - 使用 php 在 iframe 内重定向

javascript - ionic 的路由问题