1

我在一个呼叫中心工作,有一个 aspx 页面,可以生成公司所有其他呼叫中心当前统计信息的 html 表格。

我在这里举了一个JSFiddle上生成的示例。恐怕我只是一个热心的初学者,所以如果我没有正确地问这个等,我深表歉意。

我正在寻找只提取我需要的数据,其中包括所有行和标记的列:

         --- C6 C7 C13 C14

所以我需要看到的是上面的列。

这需要在客户端,所以我假设是 JS,因为我们无法在服务器上访问或编辑,因此我们无法拥有自己的 aspx 文件。

我很高兴使用 jQuery,我知道可以使用 jQuery 提取数据,但我似乎无法理解它:(

如果有人愿意使用http://fiddle.jshell.net/UqZjt/show/作为源文件来组合一个 JSFiddle ,那将不胜感激。

提前致谢。

4

4 回答 4

3

如果您对 jQuery 没问题,请在您的页面中包含 jQuery 库,将此行添加到您的页面中<head>

<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js"></script>

这是基于硬编码的标题数组隐藏不需要的列的代码:

$(document).ready(function() {

    //define which column headers to keep
    var headersToKeep = ['---', 'C6', 'C7', 'C13', 'C14'],
        colsToKeep = [],
        table = $('#gvRealtime'),
        ths = table.find('th');

    //iterates over headersToKeep retrieving their indexes
    $.each(headersToKeep, function(i, v) {
        //finds each header and adds its index to the colsToKeep
        colsToKeep.push(ths.filter(function() {
            return $(this).text() == v;
        }).index());
    });

    //makes a new jQuery object containing only the headers/cells not present in the colsToKeep
    $('th, td', '#gvRealtime, #gvTotal').filter(function() {
        return $.inArray($(this).index(), colsToKeep) == -1;
    }).hide(); //and hides them
});

即使您对 JS/jQuery 没有太多经验,也会对代码进行注释,以防您对每个部分的作用有任何疑问。将它添加到 jQuery 库之后的<script></script>标签内。<head>

这是JSFiddle

当然,稍后您可以根据复选框或其他切换方法获取/制作数组。由于您没有要求任何特定接口,因此我将数组保留为硬编码。

编辑:显然,假设您已经知道列号而不是通过标题文本获取它们,您可以使用这个更简单的代码段:

$(document).ready(function() {
    var colsToKeep = [0, 6, 7, 13, 14];
    $('th, td', '#gvRealtime, #gvTotal').filter(function() {
        return $.inArray($(this).index(), colsToKeep) == -1;
    }).hide();
});

JSFiddle

于 2012-07-08T11:06:36.140 回答
0

一个简单的谷歌搜索把我带到了这个答案,这把我带到了这个小提琴

我已尝试使代码适应您的要求

希望您可以使用该功能(它位于最底部)达到某种效果。

于 2012-07-08T09:24:42.703 回答
0

您可以通过这种方式轻松访问表格的元素:

var table = document.getElementsByTagName("table")[0],
    tabArray = [];
for (var i = 0; i < table.tBodies[0].rows.length; i++) {
    var rowArray = [];
    for (var j = 0; j < table.tBodies[0].rows[i].cells.length; j++)
        rowArray.push(table.tBodies[0].rows[i].cells[j].innerHTML);
    tabArray.push(rowArray);
}

现在,tabArray是一个包含表格单元格内容的二维数组。

于 2012-07-08T09:25:01.023 回答
0

您可以通过 jquery 来实现这一点

$(document).ready(function() {
$('tr td').each(function() {
    $('#Result').append($(this).text());
});
});

在我的示例中,我为单元格数据添加了一个带有 id 结果的 div

<div id="Result" ></div>
于 2012-07-08T09:27:36.270 回答