意外的jquery选择器结果

时间:2013-09-30 15:37:57

标签: jquery html css jquery-selectors

我有一个包含项目列表的表格,每个项目旁边的复选框以及一个删除已检查项目的按钮。

所以我在jquery中有这个选择器,在从ajax调用返回后删除所选复选框的行以删除受影响的项目:

tr input[name=storePurchaseItemIds\\[\\]][value=" + id + "]

我希望它能够选择所有" tr"具有名称为storePurchaseItemIds []且具有id变量值的输入的元素。

相反,它似乎做了相反的事情:选择所有输入作为行的一部分(当我在结果上调用remove()时,它删除了复选框,将行保留在机组中)。

很明显,我对选择器有些误解,并且好奇为什么意外的结果会发生。

1 个答案:

答案 0 :(得分:1)

您在这里使用了后代选择器,因此它选择了输入元素,而您需要选择tr元素,其中input元素符合条件。因此,请使用下面给出的:has().has()

$("tr:has(input[name=storePurchaseItemIds\\[\\]][value=" + id + "])")

$("tr").has("input[name=storePurchaseItemIds\\[\\]][value=" + id + "]")