2010-06-21 6 views
0

Est-il possible d'utiliser l'opérateur plus que dans un critère jquery Par exemple, je veux obtenir toutes les lignes où l'index de la ligne est supérieur à une certaine valeur. Est-il possible ou dois-je créer ma propre fonction une fois que j'ai le jeu de résultats de jquery?Comment comparer si un ID est supérieur à une valeur dans jquery

+0

plus loin ... s'il vous plaît élaborer – Reigel

Répondre

3

Pour l'exemple mentionné dans votre question, vous pouvez simplement utiliser le sélecteur :gt():

// Get all rows with a rowIndex greater than 5: 
var rowsPlus5 = $('#mytable tr:gt(5)'); 

Pour d'autres scénarios, vous pourriez avoir besoin pour utiliser la méthode .filter() avec une fonction de rappel.

+0

Cela semble bien, toutes les idées que je peux enchaîner critieria multilingue dans jquery. Par exemple, je suis déjà en utilisant une recherche de td: table.find ("td [ColumnName =" + searchColumn + "]: contient ('" + searchVal + "')") si je veux ajouter un tr gt() critieria aussi alors est-il possible de les enchaîner en quelque sorte? – Rubans

+0

@Rubans: il est probablement à la limite de l'obscène et j'essaie d'éviter de tels sélecteurs complexes parce qu'ils ne fonctionnent pas toujours, par exemple. 'table.find (" tr: gt (5)> td [ColumnName = "+ searchColumn +"]: contient ('"+ searchVal +"') ")'. Vous pouvez également utiliser la méthode '.has()' ou le sélecteur ': has()' si vous voulez juste une référence aux TR correspondants et non aux éléments TD. –

+0

Comment utiliser has()? Ce qui suit ne semble rien renvoyer: table.find ("td [ColumnName =" + searchColumn + "]: icontains ('" + searchVal + "')"). Has ("tr: gt (2) "); – Rubans

1
var $filtered = $('table').find('tr').filter(function(){ 
    return (this.rowIndex > 5); 
}); 

Travaux.

Cela ne fonctionne pas avec $('table').children('tr'), je ne sais pas pourquoi. Quelqu'un s'il vous plait?

+2

$ ('table') enfants ('tr') ne trouve rien parce que tr sont des enfants de tbody: table> tbody> tr –

+1

Voir la documentation pour [ 'table.tBodies' ] (https://developer.mozilla.org/en/DOM/table.tBodies), un élément '' est automatiquement inséré dans le DOM s'il n'est pas spécifié. Les éléments '' seront des enfants de ce ''. –

0

Je voudrais essayer quelque chose de semblable à ce qui suit:

$('tr.selector').each(function(){ 
    var rowId = $(this).index(); 
    if (rowId > 5){ 
     $(this).addClass('red'); 
    } 
}); 
0

vous voudrez peut-être:

.slice(start, [ end ]);Réduire l'ensemble des éléments adaptés à un sous-ensemble spécifié par une série d'indices.

début un nombre entier indiquant la position base 0, après quoi les éléments sont sélectionné. Si négatif, il indique un décalage de par rapport à la fin de l'ensemble.
end Un nombre entier indiquant la position 0 avant laquelle les éléments cessent d'être sélectionnés. Si négatif, indique un décalage par rapport à la fin de l'ensemble. If omitted, the range continues until the end of the set. .

Questions connexes