test si display = none
Cela ne fonctionne pas, devrait-il? Ou pouvez-vous arrêter de l'erreur si une autre ligne pourrait faire de même:
function doTheHighlightning(searchTerms) {
//loop through input array of search terms
myArray = searchTerms.split(" ");
for(i=0;i<myArray.length;i++)
{
//works. this line works if not out commented. Will highlight all words, also in the hidden elements
//$('tbody').highlight(myArray[i]);
//not working when trying to skip elements with display none...
$('tbody').css('display') != 'none').highlight(myArray[i]);
}
//set background to yellow for highlighted words
$(".highlight").css({ backgroundColor: "#FFFF88" });
}
J'ai besoin de filtrer les lignes dans une table et la couleur de certains mots. Les données a devenir façon beaucoup plus pour le coloriage si de nombreux mots sont choisis. Je vais donc essayer de limiter la coloration par la aucun éléments cachés.
Vous devez vous connecter pour publier un commentaire.
Si vous voulez obtenir le visible
tbody
éléments, vous pourriez faire ceci:Elle ressemble à la réponse que Agent_9191 a donné, mais celui-ci supprime l'espace dans le sélecteur, ce qui le rend sélectionne le visible
tbody
éléments au lieu de le visible descendants.EDIT:
Si vous souhaitez utiliser un test sur le
display
propriété CSS de latbody
éléments, vous pourriez faire ceci:tbody:visible
recherchetbody
éléments qui sontvisible
, tandis quetbody :visible
recherche descendants detbody
qui sont:visible
. Bonne chance! 🙂Utiliser comme ceci:
Espère que cela aide!
Essayez plutôt ceci à sélectionner uniquement les éléments visibles sous la
tbody
:Comme @Agent_9191 et @partick mentionné que vous devez utiliser
ou
En outre, puisque vous semblez être l'application d'une classe à la mise en surbrillance des mots, au lieu d'utiliser jquery pour modifier l'arrière-plan de tous appariés faits saillants, il suffit de créer une règle css avec la couleur d'arrière-plan dont vous avez besoin et il est appliqué directement une fois que vous assigner la classe.
Vous pouvez utiliser le code suivant pour tester si
display
est équivalent ànone
: