3

我很难找到使用 jQuery 的项目的最简单路径(尽管解决方案不一定要使用 jQuery,它只是作为工具提供)。这是一个简化的代码示例:

<tr>
    <td>Bob Jones</td>
    <td class="class-name">
        <a href="/start/1">Workshop</a>
    </td>
    <td>06/04/11</td>
    <td class="last">
         <a href="#" class="button">Delete</a>
    </td>
</tr>

单击“删除”链接时,我希望获得“研讨会”一词,我想知道哪种方法最有效。会不会是 a) 在树的上一层到<td>元素并通过类名找到兄弟元素,然后是里面的链接/文本值... b) 上<tr>一层并搜索类名,等等或 c) 做一些我没有考虑过的事情。

我似乎总是难以理解何时以及如何在 javascript 或 jquery 中进行 dom 遍历,并且想知道不同可用方法背后的原因,以及如何获得最终结果是否重要。

4

3 回答 3

3

这个简单的模式通常是最好的:

  1. 用简单的英语说出你想找到的东西。
  2. 将结果视为伪代码。
  3. 从字面上将其翻译为代码。

在你的情况下,它可能是:

我需要<td class="class-name">在单击的元素所属的行上。

这直接转化为您的b)选择:

$(this).closest("tr").find("td.class-name")
于 2011-06-05T01:50:11.533 回答
1

这有效:http: //jsfiddle.net/JCz6L/

于 2011-06-05T01:51:43.337 回答
0
$("td.class-name a", $(this).closest("tr")).text())

$(this).closest("tr").children(":nth-child(2)").children("a").text()

演示

于 2011-06-05T01:54:32.383 回答