2009-08-25 11 views

Répondre

3

La méthode filter prend un sélecteur jQuery régulière, donc vous devriez écrire filter("#"+list[i].ID). (En supposant que list[i].ID est l'attribut id d'un élément li). En outre, la méthode filter recherche les éléments contenus dans votre objet jQuery, pas leurs enfants; vous devriez appeler la méthode children à la place. Voir le documentation.


Cependant, la meilleure façon de le faire est comme ceci:

var listItem = $('ul.selectedItems li#' + list[i].ID); 

Pour plus d'informations sur les sélecteurs jQuery, voir here.

1

Ce ne retourne que le ul, votre sélecteur doit retourner Li

var listItem = $('ul.selectedItems li').filter(list[i].ID); 

Mais si vous avez l'id du li vous pouvez le faire

var listItem = $('#' + liId); 
+0

Vous essentiellement répété le code que j'utilisais. –

+1

Mais je l'ai fait fonctionner. –

0

Je pense que vous pouvez faire quelque chose comme ceci:

$("ul.selectedItems li").each(function(){ 
    if ($(this).is('#mypreferedid')) { 
     //do something here 
     return false; //to stop cycling 
    } 
    }); 

Si vous ne connaissez pas l'ID de l'élément, mais vous savez qu'il est la position que vous pouvez faire ceci:

$("ul.selectedItems li").each(function(index, element){ 
    if (index == selectedPosition) { 
     //do something here 
     return false; //to stop cycling 
    } 
    }); 
Questions connexes