根据前一个元素的值更改 table 值

Change table value based on value of previous element

在第一行的值为"China"的情况下,如何使用greasemonkey更改第三行的值?我找到的所有其他答案都涉及查看元素 id,但我的代码没有。

<td class="listRow listHighlight" align="center">101</td>

    <tr id="country3" class="listRow">

        <td class="listRow listHighlight" align="center">China</td>

        <td class="listRow listHighlight" align="center">Asia</td>

        <td class="listRow listHighlight" align="center">31</td>

    </tr>

使用jQuery :contains() selector and next():

var third = $('.listRow td:contains("China")').next().next();
if (third.text() === '31') {
    third.text('32');
}

如果第一个单元格可能包含 China 以外的单词,例如 China something 选择器方法将不起作用,您需要进行精确比较。使用 filter():

var third = $('.listRow td:first').filter(function() {
    return $(this).text() === 'China';
}).next().next().filter(function() {
    return $(this).text() === '31';
}).text('32');

或组合版本:

var third = $('.listRow td:first').each(function() {
    if ($(this).text() === 'China') {
        var third = $(this).next().next();
        if (third.text() === '31') {
            third.text('32');
        }
    }
});