2009-09-26 108 views
0

我有一个表中有两个ids row_26和notificationrow_26。jquery选择器问题

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

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

OR 

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

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

我错过了什么吗?

+0

我认为你需要显示更多的代码,因为你的第一个选择器应该突出显示单行。 – tvanfosson 2009-09-26 12:45:29

回答

2

这两个选择器都适用于我选择单个元素row_26,这不是你想要做的吗?如果是的话,你的代码中的其他地方可能存在一个问题,那就是你没有包括在内。

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

如果你想匹配(anything)row_26赶上两个row,你需要结束属性的选择,而不是开始时间的属性notificationrow[id$=row_26]。 [另外:但是如果性能是一个问题,使用两个单独的选择器#row_26#notificationrow_26会更快,它允许jQuery使用getElementById,而不必搜索每个元素的id。或者你也可以自己甚至称之为:

$(document.getElementById('row_'+deviceUID)).effect(...); 
$(document.getElementById('notificationrow_'+deviceUID)).effect(...); 

这看起来少“的jQuery样”,但它的速度更快,你不必担心,在属性值“特殊”字符不适合一个选择器。]

+0

非常感谢你的工作。我感谢您的帮助 – 2009-09-27 02:52:48