2009-09-26 6 views
0

J'ai deux dans un tableau avec les identifiants row_26 et notifyrow_26.Problème de sélecteur Jquery

Je veux mettre en surbrillance row_26. Donc, j'utilise soit

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

OR 

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

mais quand je le fais. Il met également en évidence la notificationrow_26. De plus, la surbrillance ne fonctionne pas correctement sur notificationrow_26. Il ne change pas sa couleur à l'original.

Ai-je raté quelque chose?

+0

Je pense que vous devez montrer plus de code car votre premier sélecteur devrait fonctionner pour mettre en évidence cette seule ligne. – tvanfosson

Répondre

2

Ces deux sélecteurs fonctionnent pour moi de sélectionner l'élément unique row_26, n'est-ce pas ce que vous essayez de faire? Si c'est le cas, il peut y avoir un problème ailleurs dans votre code que vous n'avez pas inclus.

[id^=row_26] correspondrait également à des identifiants comme row_260, cependant, ce qui n'est probablement pas ce que vous voulez.

Si vous voulez faire correspondre (anything)row_26 pour attraper à la fois la row et la notificationrow vous avez besoin d'une fin de l'attribut sélecteur au lieu de début d'attribut: [id$=row_26]. [Excepté: cependant, si les performances sont un problème, il est plus rapide d'utiliser deux sélecteurs distincts, #row_26 et #notificationrow_26, ce qui permet à jQuery d'utiliser getElementById au lieu d'avoir à rechercher l'identifiant de chaque élément. Ou vous pouvez même appeler vous-même:

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

Cela ressemble moins « jQuery-like », mais il est plus rapide et vous n'avez pas à vous soucier des caractères « spéciaux » dans la valeur d'attribut qui ne correspondent pas un sélecteur.]

+0

Merci beaucoup Bobince Cela a fonctionné. J'apprécie ton aide –