我有一个table
,其中有几列,如下所示:
<tr role="row" class="odd">
<td class="sorting_1">
<button id="1" class="btn btn-info btn-sm _edit_btn">Edit</button>
</td>
<td>1</td>
<td>Asht</td>
<td>5</td>
<td>16</td>
<td>5</td>
<td>3</td>
<td>3</td>
<td>2</td>
<td>Sughd</td>
<td>2</td>
<td>3505207000000</td>
<td>3</td>
<td>2</td>
<td>15</td>
<td>5</td>
</tr>
我想要做的是在按钮点击按钮上为每个<td>
元素添加一个属性,该按钮位于表格的第一个<td>
上。
我为此目的使用jQuery。我尝试使用兄弟姐妹函数来完成它,但它不起作用,因为<td>
元素不是<button>
元素的兄弟,而是其他<td>
元素的兄弟。
答案 0 :(得分:2)
要执行此操作,您可以使用closest()
查找tr
的父button
,然后find()
来获取td
,如下所示:< / p>
$('button').click(function() {
$(this).closest('tr').find('td').attr('foo', 'bar');
});
如果您希望使用{1}},那么您可以获取父siblings()
并使用td
:
siblings()
请注意,如果您愿意,此版本不会将该属性添加到第一个$('button').click(function() {
$(this).closest('td').siblings().attr('foo', 'bar');
});
元素。
答案 1 :(得分:1)
您可以使用$('button').click(function(){
$(this).closest('tr').find('td').attr('someattr','attrval');
});
方法遍历最近的tr元素,然后在其中找到IBAction
:
Description
答案 2 :(得分:1)
你可以在两种情况下使用这个:
$("button").click(function(e) {
//if you want to add attribute to all tds then use this line
$(this).closest("tr").find("td").attr("your-attribute", "value");
//if you want to add attribute to all tds except the first one then use this line
$(this).closest("tr").find("td:not(.sorting_1)").attr("your-attribute", "value");
});