problema de filtrado de jquery y javascript

Tengo dos problemas con mi código JS aquí y cualquier ayuda es muy apreciada...

  1. Necesito agregar una lógica para que las opciones "Más de 50" se muestren en la lista de filtrado cuando hay un producto con un precio de $499. con mi implementación actual esto no funciona.

    <li>
        <!-- over 50 product is not showing when filtering -->
        <a href="/es/product-three">Product Four</a><br>
        <span id="lowestPriceRange">400</span>
        <span id="highestPriceRange">400</span>
    </li>
    
    
    // Because I need to handle it here somehow but I'm stuck
    var hidePrices = {};
    hidePrices[0] = true;
    hidePrices[10] = true;
    hidePrices[20] = true;
    hidePrices[30] = true;
    hidePrices[40] = true;
    hidePrices[50] = true;
    
    $('#products').find('span').each(function(i, el){
        var key = parseInt(Math.floor($(this).html() / 10) * 10, 10);
        hidePrices[key] = false;
    });
    
    $('#filterByPrice').find('li').each(function(i, el){
        if (hidePrices[Number($(this).find('a').attr('name'))]) {
            $(this).hide();
        }
    });
    
  2. Está ocultando algunos productos que quiero mostrar. Por ejemplo, quiero mostrar un producto con un precio entre $40 - $60 cuando se selecciona la opción de filtrado $40 - $50.

preguntado el 22 de mayo de 12 a las 17:05

Pegue las partes relevantes de su código aquí. ¿Qué pasa si jsfiddle no funciona esta noche? Tu pregunta no tendrá ningún sentido. -

Buen punto. Agregar ejemplo de código a mi publicación ahora. -

1 Respuestas

Aquí arreglé tus problemas: http://jsfiddle.net/qNFWM/7/

Para solucionar el primer problema, agregué esto porque su clave era 400:

if (key > 50) key = 50;

Para solucionar el segundo problema, cambié esto:

return (minProductPrice >= minSelectedPrice && maxProductPrice <= maxSelectedPrice);

A esto:

return ((minProductPrice >= minSelectedPrice &&  minProductPrice <= maxSelectedPrice) || (maxProductPrice >= minSelectedPrice &&  maxProductPrice <= maxSelectedPrice));

De modo que solo el mínimo o el máximo tenían que estar en el rango.

contestado el 22 de mayo de 12 a las 18:05

Podríamos hacer una versión más dinámica de mi primera solución si quisiera agregar más rangos. - Por gracia

Esto es perfecto por ahora... ¡No puedo agradecerles lo suficiente! Todavía estoy aprendiendo Javascript y su ayuda es MUY apreciada. - Píxeles intrincados

No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas or haz tu propia pregunta.