1

嗨,昨天问了一个类似的问题,但就在这里。

首先:所有数据都在我的域中。所有数据都在同一个域上。加载 iframe 在同一个域上。谢谢你。

供参考.. 表名是 dactable,div 名是 tablediv(如果你想写一些新的东西和我能理解的标签)。

现在这是我用来拉表的代码。

$(window).on('load', function() // wait for load event, so the iframe is fully loaded in
{
  var $iframe = $('iframe'); // assuming only one?  You need to target the right iframe, perahps with iframe[src="/top_list.html"] if that's your only option

  var $contents = $iframe.contents();
  var $main = $contents.find('.main');
  var $tbl = $main.next(); // now we have the table

  $contents.find('*').hide(); // hide everything
  $tbl.show(); // show table and...

  var $parent = $tbl.parent(); // get/show all parents of the tbl

  while($parent.length)
  {
     $parent.show(); // show parent
     $parent = $parent.parent(); // move up the hierarchy
  }
});

现在我还需要删除某些列。但似乎无法让它做更多的工作。

另外它如何知道要定位哪个表?

$('table tr').each(
    function(tr_idx,el){
        $(el).children('td').each(
            function(td_idx,el2){
                //i'm removing first columns..
                if(td_idx == 0){
                    el2.remove();
                }
        });//inner each
});//outer each

谢谢

4

2 回答 2

1

尝试使用此代码按索引删除行和列。

var removeRows(table, rows){
    // mark a row, which should be removed
    $('tr', table).each(function(tr_idx){
        if(rows.indexOf(tr_idx) !== -1){
            // rows contains tr_idx
            $(this).attr("remove");
        }
    });
    // remove marked rows
    $('tr[remove]', table).remove();
},
removeColumns(table, columns){
    // mark a column, which should be removed
    $('tr', table).each(function(tr_idx){
        $('td', this).each(function(td_idx){
            if(columns.indexOf(td_idx) !== -1){
                // columns contains td_idx
                $(this).attr("remove");
            }
        };
    });
    // remove marked columns
    $('td[remove]', table).remove();
};

...
var table = $(something);

// remove rows with indexes 1, 2 and 3
removeRows(table, [1, 2, 3]); 

// remove columns with indexes 0 and 3
removeColumns(table, [0, 3]); 
于 2013-03-09T13:43:28.067 回答
1

使用 jQuery.load()将您想要的 html 加载到您选择的 div 中。您甚至可以通过在 url 后指定 #id 来选择要加载的 html 的哪一部分

$(function () {

    $('#result').load('/top_list.html #table-id', function () {

        $('#result table tr').each() {
              //remove first td of each row
              $(this).children('td').first().remove();
        });

    });

});

就是这么简单。一切都在同一个域上也很有帮助


为了更清楚地说明这一点,我们假设您有下表

<table id="table-id">
    <tr>
        <td>1</td>
        <td>2</td>
        <td>3</td>
    </tr>
    <tr>
        <td>1</td>
        <td>2</td>
        <td>3</td>
    </tr>
</table>

每行的第一个单元格被删除,结果放在一个 div 中

<div id="result">
    <table id="table-id">
        <tr>
            <td>2</td>
            <td>3</td>
        </tr>
        <tr>
            <td>2</td>
            <td>3</td>
        </tr>
    </table>
</div>
于 2013-03-09T13:45:30.113 回答