Jquery选择器问题

时间:2009-09-26 11:16:44

标签: jquery regex css-selectors

我在表中有两个ids row_26和notificationrow_26。

我想突出显示row_26。所以我使用

var deviceUID = 26;
$("#row_" + deviceUID).effect("highlight", {}, 3000);       

OR

$("tr[id^='row_"+deviceUID+"']").effect("highlight", {}, 3000);

但是当我这样做的时候。它还突出显示了notificationrow_26。此外,突出显示在notificationrow_26上无法正常工作。它不会将其颜色改回原始颜色。

我错过了什么吗?

1 个答案:

答案 0 :(得分:2)

这两个选择器都适合我选择单个元素row_26,这不是你想要做的吗?如果是,则代码中的其他地方可能存在您未包含的问题。

[id^=row_26]也会匹配row_260之类的ID,但这可能不是您想要的。

如果您希望匹配(anything)row_26以同时捕获rownotificationrow,则需要使用属性结束选择器而不是属性开始:{{1} }。

[旁白:但是如果性能是一个问题,那么使用两个单独的选择器[id$=row_26]#row_26会更快,这允许jQuery使用getElementById而不必搜索每个元素的id。或者你甚至可以自己打电话:

#notificationrow_26

这看起来不像'jQuery-like',但它更快,你不必担心属性值中的'特殊'字符不适合选择器。]