2012-09-20 64 views
5

我有以下的类,它选择td.lineitemtotal单元格内的内容,并在getTotal函数中使用它来获取单元格的总数。但是,我不希望函数使用style =“display:none;”的tr.line_item_row中的行属性。jQuery。选择所有具有类但没有style =“display:none;”的元素属性

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

回答

10

你想要这个吗?

$('.lineitemtotal:visible'); 

该集合包含类别为lineitemtotal的非隐藏元素。

+0

是的!花了我5秒钟qoogle,搜索,找到:) 绝对值得花时间写这篇评论。 – Qwerty

2

在您选择包括:visible选择:

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

'+ 1'我正准备回答:) – RASG

+1

如果元素在其属性中有其他样式,该怎么办?为什么不使用':visible'选择器? – undefined

+0

@undefined在你的第一句话的好处。我认为这将是唯一的风格。就不使用':visible'而言,我这样做是因为可见性也考虑到'visibility:hidden',并且OP没有要求这样做。 –

2

如果你肯定知道的属性始终是style="display:none;"你可以使用属性选择。

取而代之的是:

var line = $('.item'); 

试试这个:

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

使用[attribute="value"]查找有attribute与价值value元素,加入=寻找的东西,不符合!前。

相关问题