Filtrer par une recherche en utilisant le texte dans l'élément à l'intérieur de chaque div
J'ai trouvé un violon qui a été utile pour cacher le texte sur la base du texte utilisé dans une zone de recherche, mais n'ont pas été en mesure de comprendre comment adapter cette méthode à un div avec de multiples éléments. Comment pourrais-je changer le jQuery dans le violon pour faire de filtrer les éléments div qui correspondent à la recherche, entré à la place du texte dans la liste des éléments?
http://jsfiddle.net/point71echo/rof67uy6/2/
<input placeholder="Search Me" id="box" type="text" />
<ul class="navList">
<li>apples</li>
<li>apricots</li>
<li>acai</li>
<li>blueberry</li>
<li>bananas</li>
<li>cherry</li>
<li>coconut</li>
<li>donut</li>
<li>durean</li>
</ul>
<div class="connect-cat" catname="apples" style="visibility: visible; display: block;">
<a href="/connect/apples">
<div style="padding:5px;cursor:pointer;">
<div>
<img width="60" class="cat-logo" src="http://t2.gstatic.com/images?q=tbn:ANd9GcS0rYdTsHK-IwuWCNA_xXq44v76dFH2wPc5wdErF9yWHty-wqY4Bg" alt="apples">
</div>
<span>apples</span>
</div>
</a>
</div>
<div class="connect-cat" catname="apricots" style="visibility: visible; display: block;">
<a href="/connect/apricots">
<div style="padding:5px;cursor:pointer;">
<div>
<img width="60" class="cat-logo" src="http://t2.gstatic.com/images?q=tbn:ANd9GcS0rYdTsHK-IwuWCNA_xXq44v76dFH2wPc5wdErF9yWHty-wqY4Bg" alt="apricots">
</div>
<span>apricots</span>
</div>
</a>
</div>
Voici le jQuery utilisé:
$('#box').keyup(function(){
var valThis = $(this).val().toLowerCase();
if(valThis == ""){
$('.navList > li').show();
} else {
$('.navList > li').each(function(){
var text = $(this).text().toLowerCase();
(text.indexOf(valThis) >= 0) ? $(this).show() : $(this).hide();
});
};
});
OriginalL'auteur point71echo | 2014-11-24
Vous devez vous connecter pour publier un commentaire.
Voici une solution à la recherche de deux éléments à la fois en JavaScript natif, sans aucune bibliothèques.
JSFiddle
Si vous souhaitez utiliser jQuery pour le rendre plus lisible (ces stupides longue fonctions DOM):
JSFiddle
Je sais que c'est assez vieux, mais j'ai fait une mise à jour de toute façon. J'ai fait de mieux, et a également ajouté une version jQuery.
L'utilisation de 'g' (global) dans RegExp cette façon est mauvaise. Il a un état qui salit tout. Ne me croyez pas? Essayez de rechercher pour "ra" et de vous y voir que des "orange" au lieu de "radis". Fixe: jsfiddle.net/mttgj1tt/39
OriginalL'auteur
Cela devrait correspondre uniquement les divs avec la classe connectez-le chat, et le filtre par la durée de l'intérieur.
http://jsfiddle.net/reyjose/40u0var6/
OriginalL'auteur Jose Rey
Si vous avez plusieurs "couvre" dans le div, il suffit d'ajouter un nom de classe à elle. Puis changement
var text = $(this).find("span").text().toLowerCase();
:
var text = $(this).find(".spanClassName").text().toLowerCase();
OriginalL'auteur Aaron Chen
Filtrer par une recherche en utilisant le texte dans l'élément à l'intérieur de chaque div cliquez sur le bouton:
ajouter le jsfiddle lien dans le post plz.
OriginalL'auteur Khann Sothea