【问题标题】:Unexpected jquery selector result意外的 jquery 选择器结果
【发布时间】:2013-10-01 01:20:33
【问题描述】:

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

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

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

我希望它选择所有具有名称为 storePurchaseItemIds[] 的输入并具有 id 变量值的“tr”元素。

相反,它似乎做了相反的事情:选择了属于一行的所有输入(当我在结果上调用 remove() 时,它删除了复选框,使行保持完整)。

显然我对选择器有一些误解,我很好奇为什么会出现意外结果。

【问题讨论】:

  • 那个选择器就像 CSS,说“选择所有具有这些特殊属性值的 inputs,它们是 tr 的后代”。

标签: jquery html css jquery-selectors


【解决方案1】:

您在这里使用后代选择器,因此它选择输入元素,而不是您需要选择具有匹配条件的input 元素的tr 元素。所以使用:has().has() 如下所示

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

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

【讨论】:

  • 现在我看到了我就知道了。我猜是脑子放屁的时刻。
猜你喜欢
  • 1970-01-01
  • 2013-06-27
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-07-17
  • 2017-08-30
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多