2017-02-10 1 views
0

ich einen Filter schreiben und jetzt habe ich ein Problem mit digitalen Werten verstecken Dies ist ein Code von Filter html ist:Verstecke digitale Werte

<div class="height" th:classappend="${model.height}">some information</div> 

<div class="searchColor" id="filterHeight"> 
    <div class="searchTextColor"> Height:</div> 
    <input type="checkbox" id="27" value="2.7-2.9m" />2,7-2,9m<br/> 
    <input type="checkbox" id="29" value="2.9-3.0m"/>2,9-3,0m<br/> 
    <input type="checkbox" id="30" value="3.0-3.15m"/>3,0-3,15m<br/> 
    <input type="checkbox" id="315" value="3.15m"/>>3,15m&nbsp; 
</div> 

ich diese Filter zu schreiben, diese Filter funktionieren, wenn class String ist, aber ich verstehe nicht, warum es nicht funktioniert, wenn nummer + string?

$("div[class='searchColor'] input").change(function() { 
    if($("#filterHeight input:checked").length > 0){ 
     $('.height').show(); 

    $("#filterHeight input:not(:checked)").each(function() { 
     var selectedStr = $(this).val(); 
     $('.height' + selectedStr).hide(); 
    }); 

Ich brauche if becouse ich mehrere Bedingungen verwenden

Antwort

0

Ich glaube, Ihr Problem ist, dass die Werte in der Checkbox Eingänge haben Perioden ‚‘, die von jQuery als Klasse deliminator interpretiert werden.

Also für Ihre Linie:

$('.height' + selectedStr).hide(); 

könnte wie erhalten ausgeführt:

$('.height2.7-2.9m').hide(); 

Aber jQuery sieht in dieser Zeichenfolge und bricht sie auseinander durch die Perioden, so stattdessen für Elemente suchen, sind von Klasse '.height2.7-2.9m' sucht es nach Elementen, die alle Klassen '.height2', '.7-2' und '.9m' haben.

Versuchen Entfernen Punkte aus den Kontrollkästchen Wertnamen (und aus den Klassen Sie versuchen, in der HTML übereinstimmen)

+0

Vielen Dank für die Antwort. Ich habe versucht, html 'Wert' ohne Punkte und Komma zu verwenden, aber leider funktioniert es nicht. Ich empfange von DB diese Höhe, ich kann ',' oder '.' , aber ohne Punkt oder Komma können die Menschen die Höhe nicht verstehen – Viking