我在表中有两个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上无法正常工作。它不会将其颜色改回原始颜色。
我错过了什么吗?
答案 0 :(得分:2)
这两个选择器都适合我选择单个元素row_26
,这不是你想要做的吗?如果是,则代码中的其他地方可能存在您未包含的问题。
[id^=row_26]
也会匹配row_260
之类的ID,但这可能不是您想要的。
如果您希望匹配(anything)row_26
以同时捕获row
和notificationrow
,则需要使用属性结束选择器而不是属性开始:{{1} }。
[旁白:但是如果性能是一个问题,那么使用两个单独的选择器[id$=row_26]
和#row_26
会更快,这允许jQuery使用getElementById而不必搜索每个元素的id。或者你甚至可以自己打电话:
#notificationrow_26
这看起来不像'jQuery-like',但它更快,你不必担心属性值中的'特殊'字符不适合选择器。]