0

我在 html 页面中有一个数据表,我想从 tfoot 获取值,但有时我有输入按钮。所以,我感谢检查thfrom tfoot 表是否包含输入按钮,然后跳过tr,而不是获取值。我的 jQuery 代码不起作用,因为我认为,每一行 ( tr) 中都有一个按钮。

我的数据表:

<tfoot>
    <tr>
        <th></th>
        <th>Total</th>
        <th>20 420</th>
        <th>17 306</th>
        <th>3 114</th>
        <th>15.25</th>
    </tr>

    <tr>
        <th align="left" colspan="10">
            With :
            <button type="button" class="btn btn-small"><i class=" icon-signal"></i> graph</button>
        </th>
    </tr>
</tfoot>

我的jQuery代码:

// Get table footer data
$("#myTable tfoot tr").map(function() {
    footer = [];
    if($(this).find('input[type="button"]').length != 0){
        $(this).find('th').each(function() {
            var text = $(this).text().trim();
            if(text != "") footer.push(text);
        });
        footers.push(footer);
    }
});
4

1 回答 1

2

你有没有研究过使用 has() 方法

http://api.jquery.com/has/

用法如下:

var hasButton = $("th").has("button").length ? true : false;

更新

在您的 map() 方法上方添加它,它将向具有按钮子项的 TR 添加一个类:

$(".btn-small").parents("tr").addClass("has-button");

然后你在你的 map 方法中检查 TR 是否没有那个.has-button

// add .has-button class to all TR parents of the .btn-small button
$(".btn-small").parents("tr").addClass("has-button");

// use map() to selct #myTable tfoot tr that dont have has-button class
$("#myTable tfoot tr").not(".has-button").map(function() {
    footer = [];
    if($(this).find('input[type="button"]').length != 0){
        $(this).find('th').each(function() {
            var text = $(this).text().trim();
            if(text != "") footer.push(text);
        });
        footers.push(footer);
    }
});

请注意我如何使用not()方法来排除具有该类 $("#myTable tfoot tr").not(".has-button") 的 TR

http://api.jquery.com/not/

要获取属性类中的最后一个类,请尝试以下操作:

var lastClass = $('#myTable tfoot tr button').attr('class').split(' ').pop();

pop将获取数组中的最后一项

这有帮助吗?

于 2013-10-16T18:56:47.870 回答