2012-09-20 17 views
5

Ich habe die folgende Klasse, die auswählt, was innerhalb der td.lineitemtotal-Zellen ist, und es in der getTotal-Funktion verwendet, um eine Summe der Zellen zu erhalten. Aber ich möchte nicht, dass die Funktion die Zeilen verwendet, die in einem tr.line_item_row mit style = "display: none;" Attribut.jQuery. Wähle alle Elemente mit einer Klasse aus, aber ohne style = "display: none;" Attribut

$(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)); 
} 

Antwort

10

Wollen Sie das?

$('.lineitemtotal:visible'); 

Dieser Satz enthält die nicht versteckten Elemente mit der Klasse lineitemtotal.

+0

Ja! nahm mich 5 Sekunden zu Qoogle, suchen, finden :) Auf jeden Fall lohnt es sich Zeit zu verbringen diesen Kommentar zu schreiben. – Qwerty

2

Auf dem Selektor umfassen die :visible Selektor:

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

'+ 1' Ich wollte gerade antworten :) – RASG

+1

Was wäre, wenn Element andere Stile in seinem Attribut hätte? Warum nicht mit ': visible' Selektor? – undefined

+0

@undefined guter Punkt auf Ihrem ersten Satz. Ich nahm an, das wäre der einzige Stil. Soweit ich ': visible' nicht verwende, habe ich das getan, weil visible auch' visibility: hidden' berücksichtigt und das OP nicht darum gebeten hat. –

2

Wenn Sie sicher wissen, dass das Attribut immer style="display:none;" Sie ein Attribut Selektor verwenden sein.

Statt dessen:

var line = $('.item'); 

Try this:

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

mit [attribute="value"] für Elemente sieht die attribute mit Wert haben value und fügte hinzu, die ! vor dem = für Dinge sieht, die nicht übereinstimmen .

Verwandte Themen