Javascript 如何在此处选择TR?

Javascript 如何在此处选择TR?,javascript,jquery,html-table,parent,Javascript,Jquery,Html Table,Parent,这是我的代码,setWord是1985: $("td:contains(" + setWord + ")").css("textDecoration", "underline"); 我认为这会起作用: $("td").not(":contains(" + setWord + ")").parent().css("backgroundColor", "red"); 但显然不是。我只是想选择TD的父母TR <tr> <td>John</td&

这是我的代码,setWord是1985:

$("td:contains(" + setWord + ")").css("textDecoration", "underline");
我认为这会起作用:

$("td").not(":contains(" + setWord + ")").parent().css("backgroundColor", "red");
但显然不是。我只是想选择TD的父母TR

<tr>
            <td>John</td>
            <td>03/09/1985</td>
            <td>Red</td>
            <td>Australia</td>
            <td>$ Dollars</td>
        </tr>
        <tr>
            <td>Dave</td>
            <td>01/01/1987</td>
            <td>Blue</td>
            <td>London</td>
            <td>&pound; Pounds</td>
        </tr>

约翰
03/09/1985
红色
澳大利亚
美元
戴夫
01/01/1987
蓝色
伦敦
&磅;英镑

如果要更改不包含设置字的所有行的背景,请尝试以下操作:

$("tr").not(":contains(" + setWord + ")").css("backgroundColor", "red");
$("td:contains(" + setWord + ")").parent().css("backgroundColor", "red");
演示:


如果要更改包含
setWord
的行的背景,请尝试以下操作:

$("tr").not(":contains(" + setWord + ")").css("backgroundColor", "red");
$("td:contains(" + setWord + ")").parent().css("backgroundColor", "red");
演示:

您显示的代码存在问题:

$("td").not(":contains(" + setWord + ")").parent().css("backgroundColor", "red");

…就是从选择所有TD元素开始,然后删除包含
setWord的元素,但这仍然会选择每行中至少一些TD元素。因此,当您获得所选TDs的
.parent()
时,您将获得每个TR元素…

“我只是试图选择该TD的父TR”-哪个TD?您使用的是
.not()
,因此将选择不包含
设置字的TDs
…对我来说,正如您所拥有的那样:(这将同时选择
,因为两者都包含
而不包括设置字)为什么要基于文本内容进行DOM选择?您不能为元素提供属性,以便有更适合选择的内容吗?您可以为每个包含您尝试选择的年份的
tr
添加一个
data-
属性。我将顶行粘贴错误,现在已修复,但我没有意识到我可以只在tr中搜索,这修复了它,谢谢: