我想使用jQuery重命名基于类和同级标签中的文本的某些文本。例如,我试图根据同级Sally Samantha(即.field1)中的文本,在以下HTML中将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的类查找“ Sally”并将其重命名为“ Samantha”?

提前致谢。

最佳答案

您的选择器不正确; .field1是包含文本的td。尝试这个:

$(".adv-grid-cell.field1:contains('421')").siblings(".adv-grid-cell.description").text('Samantha');


Working example

值得注意的是,:contains选择器在DOMElement的innerText中提供的字符串上匹配,因此它将匹配421a421znot 421。如果只需要在421上进行匹配,则需要使用filter()

$('.adv-grid-cell.field1').filter(function() {
    return $(this).text().trim() == '421';
}).siblings(".adv-grid-cell.description").text('Samantha');

08-17 08:09