如何根据 class 姓名和兄弟姐妹更改特定 table 单元格的文本?
How do I change the text of a specific table cell based on class name and sibling?
我想使用 jQuery 重命名一些基于 class 的文本和兄弟姐妹标签中的文本。例如,我试图根据同级 .field1
td
中的文本(即 421
).
<table>
<tbody>
<tr class="adv-grid-row">
<td class="adv-grid-cell description">Sally</td>
<td class="adv-grid-cell units">Jibber</td>
<td class="adv-grid-cell field8">Jabber</td>
<td class="adv-grid-cell field1">421</td>
<td class="adv-grid-cell part_number">433</td>
<td class="adv-grid-cell field25">John</td>
</tr>
<tr class="adv-grid-row">
<td class="adv-grid-cell description">Test</td>
<td class="adv-grid-cell units">Each</td>
<td class="adv-grid-cell field8">Part</td>
<td class="adv-grid-cell field1">450</td>
<td class="adv-grid-cell part_number">431</td>
<td class="adv-grid-cell field25">Joe</td>
</tr>
</tbody>
</table>
这是我目前所拥有的,但它不起作用:
$(".adv-grid-cell.field1 td:contains('421')").siblings(".adv-grid-cell.description").text('Samantha');
如果那不可能,我如何使用 td 的 class 查找 "Sally" 并将其重命名为 "Samantha"?
提前致谢。
您的选择器不正确; .field1
是 包含文本的 td
。试试这个:
$(".adv-grid-cell.field1:contains('421')").siblings(".adv-grid-cell.description").text('Samantha');
值得注意的是,:contains
选择器匹配 DOMElement 的 innerText
中任何位置的提供字符串,因此它将匹配 421
、a421z
和not 421
。如果您只需要在 421
上进行匹配,则需要使用 filter()
:
$('.adv-grid-cell.field1').filter(function() {
return $(this).text().trim() == '421';
}).siblings(".adv-grid-cell.description").text('Samantha');
我想使用 jQuery 重命名一些基于 class 的文本和兄弟姐妹标签中的文本。例如,我试图根据同级 .field1
td
中的文本(即 421
).
<table>
<tbody>
<tr class="adv-grid-row">
<td class="adv-grid-cell description">Sally</td>
<td class="adv-grid-cell units">Jibber</td>
<td class="adv-grid-cell field8">Jabber</td>
<td class="adv-grid-cell field1">421</td>
<td class="adv-grid-cell part_number">433</td>
<td class="adv-grid-cell field25">John</td>
</tr>
<tr class="adv-grid-row">
<td class="adv-grid-cell description">Test</td>
<td class="adv-grid-cell units">Each</td>
<td class="adv-grid-cell field8">Part</td>
<td class="adv-grid-cell field1">450</td>
<td class="adv-grid-cell part_number">431</td>
<td class="adv-grid-cell field25">Joe</td>
</tr>
</tbody>
</table>
这是我目前所拥有的,但它不起作用:
$(".adv-grid-cell.field1 td:contains('421')").siblings(".adv-grid-cell.description").text('Samantha');
如果那不可能,我如何使用 td 的 class 查找 "Sally" 并将其重命名为 "Samantha"?
提前致谢。
您的选择器不正确; .field1
是 包含文本的 td
。试试这个:
$(".adv-grid-cell.field1:contains('421')").siblings(".adv-grid-cell.description").text('Samantha');
值得注意的是,:contains
选择器匹配 DOMElement 的 innerText
中任何位置的提供字符串,因此它将匹配 421
、a421z
和not 421
。如果您只需要在 421
上进行匹配,则需要使用 filter()
:
$('.adv-grid-cell.field1').filter(function() {
return $(this).text().trim() == '421';
}).siblings(".adv-grid-cell.description").text('Samantha');