jQuery检查数据表中是否包含一个按钮并跳过tr

时间:2013-10-16 18:49:14

标签: jquery datatable

我有一个数据表到html页面,我想从tfoot获取值,但我有时输入按钮。所以,我感谢检查来自tfoot表的th是否包含输入按钮,然后跳过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);
    }
});

1 个答案:

答案 0 :(得分:1)

您是否考虑过使用has()方法

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

用法如下:

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

<强>更新

将这个添加到你的map()方法之上,它会将一个类添加到有一个子按钮的TR:

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

然后你在地图方法中检查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”)的TR。不是(“。has-button”)

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

获取属性类中的最后一个类,试试这个:

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

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

有帮助吗?