1

こんにちは、昨日同様の質問をしましたが、ここにあります。

まず、すべてのデータは私のドメインにあります。すべてのデータは同じドメインにあります。読み込んでいるiframeは同じドメインにあります。ありがとうございました。

参考までに、テーブル名は変更可能で、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
  }
});

次に、特定の列も削除する必要があります。しかし、1以上のことをするようにそれを機能させることはできないようです。

また、どのテーブルをターゲットにするかをどのように知るのですか?

$('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 に答える