【发布时间】:2015-03-05 14:07:14
【问题描述】:
我正在使用带有 Flask/jinja2 模板的 jquery 1.11.1
在尝试根据类删除行时,我使用了
$("table#success tr[class=" + sale_id.rowclass +"]").remove();
“sale_id.rowclass”变量是从我的 jinja 模板传入的。 但是,当变量是单值时(例如“n133”),该语句可以完美运行 当变量包含一个双精度值时,例如。 “危险n133”
我明白了:
"错误:语法错误,无法识别的表达式:table#success tr[class=危险 n133]"
关于我做错了什么有什么想法吗?
已解决:
感谢所有发帖者,我是 jquery 和 javascript 的新手,你们教会了我很多东西。
为了能够删除包含类“danger n123”的行或包含类“n123”,我执行了以下操作。 感谢 Kevin Grabher 和 Grundy,我使用 .split() 函数从 sale_id.rowclass 中获得了单独的值
var clsvalues = sale_id.rowclass.split(" ");
然后
$("table#success tr[class~='" + sale_id.rowclass + "'],[class~='" + clsvalues[1] + "']").remove();
不过,引号的位置让我发疯了。如果有更优雅的解决方案,我会欢迎它。
对于像我这样的新手,索引之间的逗号允许“或”。 https://stackoverflow.com/a/2263976/4154955
【问题讨论】:
-
我们能否获得一个代码示例来说明 sale_id.rowclass 是如何生成的?
-
您需要在属性值周围添加引号,例如来自 doc:value: An attribute value. Can be either an unquoted single word or a quoted string. 的
class='" + sale_id.rowclass +"'] -
@AngrySpartan 我先尝试 Grundy 的建议(因为它更短)。
-
@Grundy,我按照你的建议做了,它可以删除具有两个类值的行,但是我真的想删除同时具有两个类值的行或具有最后一个值。
-
@Pete,谢谢 Pete,不仅解决了我的问题,而且使我的代码更易于阅读,并更新了我对 jquery 选择机制的理解。我将这一行更改为
$("table#success tr." + clsvalues[1]).remove();Grundy 的最后一条评论,让我不再费心处理这些引号:) 我将编辑我的帖子以显示更新。多亏了你们 Grundy 和 Kevin Grabher 的努力,我才能够走到这一步。 Stackoverflow 似乎无法同时感谢所有人。