2012-09-20 23 views
5

Tengo la siguiente clase, que selecciona lo que hay dentro de las celdas td.lineitemtotal y lo usa en la función getTotal para obtener un total de las celdas. Pero, no quiero que la función use las líneas que están en tr.line_item_row con style = "display: none;" atributo.jQuery. Seleccione todos los elementos con una clase pero sin style = "display: none;" atributo

$(document).ready(function() { 
    var line = $('.item'); 
    // so the line totals are calculated on page load 
    getLineItemTotals(line); 

    var line_totals = $('.lineitemtotal'); 
    getTotal(line_totals); // So the total is calculated on page load. 
}); 

// get invoce grand total 
function getTotal(lines) { 
    var total = 0; 
    $.each(lines, function(){ 
    total += parseFloat($(this).html()); 
    }); 
    $('#total-price').html('$' + total.toFixed(2)); 
} 

Respuesta

10

¿Lo desea?

$('.lineitemtotal:visible'); 

Este conjunto contiene los elementos no ocultos con la clase lineitemtotal.

+0

Sí! me tomó 5 segundos para qoogle, buscar, encontrar :) Definitivamente vale la pena pasar el tiempo escribiendo este comentario. – Qwerty

2

En el selector de incluir el selector de :visible:

$('.lineitemtotal:visible'); 
4
var line_totals = $('.lineitemtotal:not([style*="display:none"])'); 
+0

'+ 1' Estaba a punto de responder :) – RASG

+1

¿Qué pasa si el elemento tiene otros estilos en su atributo? ¿Por qué no usar el selector ': visible'? – undefined

+0

@undefined buen punto en su primera oración. Asumía que ese sería el único estilo. En cuanto a no usar ': visible', lo hice porque visible también tiene' visibility: hidden' en cuenta, y el OP no me pidió eso. –

2

Si sabe con certeza que el atributo será siempre style="display:none;" puede utilizar un selector de atributos.

lugar de esto:

var line = $('.item'); 

Prueba esto:

var line = $('.item[style!="display:none;"]'); 

usando [attribute="value"] se buscan elementos que tienen attribute con valor value, añadiendo el ! antes de la = ve cosas que no coinciden .

Cuestiones relacionadas