gpt4 book ai didi

javascript - 单击按钮获取表格行的内容

转载 作者:IT王子 更新时间:2023-10-29 02:51:51 25 4
gpt4 key购买 nike

我需要提取表中每一列的详细信息。例如,列“姓名/编号”。

  • 该表包含一些地址
  • 每一行的最后一列都有一个按钮,让用户可以选择列出的地址。

问题:我的代码只提取第一个 <td>有一个类 nr .我如何让它发挥作用?

这是 jQuery 部分:

$(".use-address").click(function() {
var id = $("#choose-address-table").find(".nr:first").text();
$("#resultas").append(id); // Testing: append the contents of the td to a div
});

表格:

<table id="choose-address-table" class="ui-widget ui-widget-content">
<thead>
<tr class="ui-widget-header ">
<th>Name/Nr.</th>
<th>Street</th>
<th>Town</th>
<th>Postcode</th>
<th>Country</th>
<th>Options</th>
</tr>
</thead>
<tbody>
<tr>
<td class="nr"><span>50</span>
</td>
<td>Some Street 1</td>
<td>Leeds</td>
<td>L0 0XX</td>
<td>United Kingdom</td>
<td>
<button type="button" class="use-address" />
</td>
</tr>
<tr>
<td class="nr">49</td>
<td>Some Street 2</td>
<td>Lancaster</td>
<td>L0 0XX</td>
<td>United Kingdom</td>
<td>
<button type="button" class="use-address" />
</td>
</tr>
</tbody>
</table>

最佳答案

练习的目的是找到包含信息的行。当我们到达那里时,我们可以轻松地提取所需的信息。

回答

$(".use-address").click(function() {
var $item = $(this).closest("tr") // Finds the closest row <tr>
.find(".nr") // Gets a descendent with class="nr"
.text(); // Retrieves the text within <td>

$("#resultas").append($item); // Outputs the answer
});

VIEW DEMO

现在让我们集中讨论在这种情况下的一些常见问题。

如何找到最近的行?

使用 .closest() :

var $row = $(this).closest("tr");

使用 .parent() :

您还可以使用 .parent() 向上移动 DOM 树方法。这只是有时与 .prev() 一起使用的替代方法。和 .next() .

var $row = $(this).parent()             // Moves up from <button> to <td>
.parent(); // Moves up from <td> to <tr>

获取所有表格单元格 <td>值(value)观

所以我们有我们的 $row我们想输出表格单元格文本:

var $row = $(this).closest("tr"),       // Finds the closest row <tr> 
$tds = $row.find("td"); // Finds all children <td> elements

$.each($tds, function() { // Visits every single <td> element
console.log($(this).text()); // Prints out the text within the <td>
});

VIEW DEMO

获取特定的 <td>值(value)

与上一个类似,但是我们可以指定 child 的索引<td>元素。

var $row = $(this).closest("tr"),        // Finds the closest row <tr> 
$tds = $row.find("td:nth-child(2)"); // Finds the 2nd <td> element

$.each($tds, function() { // Visits every single <td> element
console.log($(this).text()); // Prints out the text within the <td>
});

VIEW DEMO

有用的方法

  • .closest() - 获取第一个匹配选择器的元素
  • .parent() - 获取当前匹配元素集中每个元素的父元素
  • .parents() - 获取当前匹配元素集合中每个元素的祖先
  • .children() - 获取匹配元素集合中每个元素的子元素
  • .siblings() - 获取匹配元素集合中每个元素的 sibling
  • .find() - 获取当前匹配元素集合中每个元素的后代
  • .next() - 获取匹配元素集中每个元素的紧随其后的兄弟
  • .prev() - 获取匹配元素集中每个元素的前一个兄弟

关于javascript - 单击按钮获取表格行的内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14460421/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com