10
votes

Sélectionnez chaque dernier enfant visible à JQuery

Je voudrais obtenir le dernier fort> visible fort> td code> dans chaque tr code> dans une table.

Cela ne fonctionne pas car il tente Pour sélectionner le dernier enfant si em> il est visible: p> xxx pré>

jusqu'à présent la méthode la plus simple que j'ai pensée est d'utiliser un . chacun code> à travers les éléments tr code> et appendez chacun des derniers TD code> s sur une nouvelle liste de sélecteur. P>

y a-t-il un manière plus simple? Quelque chose comme ceci existe-t-il? P>

var last_visible_cells = $(table).find("tr").lastMatching("td:visible");


1 commentaires

Ce premier n'est pas non plus valide Syntaxe.


4 Réponses :


0
votes

Vous voulez saisir tous les TDS et filtrer uniquement ceux qui n'ont pas d'élément visible à côté de celui-ci.

dang, qui ne fonctionne que s'il n'y a pas de invisibles au milieu de la rangée.


1 commentaires

Si un groupe de balises alterné dans la visibilité (par exemple 0101010), la sélection de "toutes les balises visibles sans une balise visible suivante" sélectionnerait toutes les balises visibles, au lieu de seulement le dernier. Au lieu de cela, utilisez NextUntille (). API.JQUERY.COM/NEXTUNTIL



20
votes

Vous pouvez le faire: xxx

voir un exemple complet ( JQuery 1.2+ compatible)


1 commentaires

Merci! C'est exactement ce que je cherchais.



0
votes

Basé sur la réponse de Mathletics, mais en utilisant Nextuntil () code>. Ceci trouve chaque balise visible qui n'a pas de balise visible suivante.

$('table tr').children('td').filter(function() { 
  return $(this).is(':visible') && $(this).nextUntil(':visible').length === 0; 
})


0 commentaires

2
votes

Pour obtenir chaque dernier visible, vous pouvez faire quelque chose comme xxx


0 commentaires