0
votes

JQuery Search, masquer div par ID

J'ai des problèmes avec le code suivant.
Je peuplage une page Web avec des éléments d'un tableau: xxx pré>

et j'ai une zone de recherche simple: p>

CODE> P>

Il est possible de masquer des éléments par ID lorsque l'utilisateur démarre entré? P>

$( document ).ready(function() {
$("#filter").keyup(function() {

each element in webpage
    if div id contains userinput
        keepelement
    else
        hideit


2 commentaires

Veuillez partager votre page HTML et votre code JavaScript.


Si vous avez du code pseudo, pourquoi ne faites-vous pas de recherche sur la convertir en un code réel au lieu de simplement nous demander de faire votre travail pour vous? Si vous faites cela et rencontrez un problème spécifique en cours de route, nous pouvons vous aider avec cela. Mais ne nous demandez pas de vous demander de le résoudre pour vous sans montrer de type d'effort.


3 Réponses :


0
votes

Voici un code de travail. Vous feriez mieux d'utiliser la fonction de porte-clés.

dans l'événement KeyPress sur #filter div, il iTère div avec la classe .column et vérifie si son identifiant contient une valeur de filtre DIV. S'il contient, il sera masqué et d'autres seront montrés. P>

<input class="form-input" id="filter" type="text" placeholder="filter"/>
<?php
$a = array("Volvo", "BMW", "Toyota");

foreach ($a as $item) {
    echo '<div class="column col-3" id="' . $item . '" >' . $item . '</div>';
}
?>
<script>
    $(function () {
        $("#filter").keypress(function (e) {
            const val = e.target.value;
            $('div.column').each(function (ind, ele) {
                if (ele.id.includes(val)) {
                    $(ele).hide();
                } else {
                    $(ele).show();
                }
            });
        });
    });
</script>


2 commentaires

Qu'est ce que ça fait? Comment ça marche? Une bonne réponse inclut une explication appropriée et détaillée, pas seulement un morceau de code. Et IMHO, l'OP devrait montrer des efforts avant de répondre, sinon sera simplement un service de codage libre.


Pourquoi ne pas utiliser l'entrée? i.e $ ('# filtre'). Entrée (fonction () Il semble mieux que KeyPress



0
votes
$('#filter').keyup(function(){
    $('div').each(function(){
        var str = $(this).attr('id').toLowerCase();
        if(str.indexOf($('#filter').val().toLowerCase())){
            $(this).removeClass('d-none');
        }
        else{
            $(this).addClass('d-none');
        }
    });
    
});
just use this code. This is for all div tags in html. if you want just for .column classed div's use $('div.column')

1 commentaires

IMHO, l'OP devrait faire preuve d'effort avant de répondre, sinon sera simplement un service de codage libre.



0
votes

Essayez comme ça -

<input class="form-input" id="filter" type="text" placeholder="filter"/>
    <?php
    $a = array("Volvo", "BMW", "Toyota");
    
    foreach ($a as $item) {
        echo '<div class="column col-3" id="' . $item . '" >' . $item . '</div>';
    }
    ?>
    <script>
        $(function () {
            $("#filter").keypress(function (e) {
                const val = e.target.value;
                $('div.column').each(function (ind, ele) {
                    if (ele.id.includes(val)) {
                        $(ele).hide();
                    } else {
                        $(ele).show();
                    }
                });
            });
        });
    </script>


1 commentaires

Pourquoi devraient-ils l'essayer? Qu'est ce que ça fait? Comment ça marche? Une bonne réponse inclut une explication appropriée et détaillée, pas seulement un morceau de code. Et IMHO, l'OP devrait montrer des efforts avant de répondre, sinon sera simplement un service de codage libre.