1

始めに、これは私の最初の投稿なので、最初に「初心者」の間違いをお詫びします。できる限り詳細に説明し、できる限りレイアウトします。

私がしていること:

社内で使用する Chrome アプリの作成。

問題:

読み込まれた ajax 呼び出しからの完全な HTML データを含む Ajax 呼び出しによる解析:

アクセスできないもの:

サーバーベースの PHP または MYSQL。

私がアクセスできるもの:

ループする必要があるデータを含むすべてのページの完全な html データと、put と get を介してサーバーに新しいデータを投稿します。

アプリは、クロスドメイン データにアクセスするためのアクセス許可が既に設定されているため、ajax で問題が発生することはなく、クロス ドメイン ポリシーです。プルする必要があるページのすべてのデータが正常にプルされます。

私が使用しているもの:サポートされているかどうかにかかわらずJquery Javascript、またはJ Queryの理解が不十分であるため、J Queryは非常に堅牢であり、利用可能なさまざまなAPIを把握しようとしています。

問題:

必要なhtmlデータを使用してajaxデータをロードできます。Jquery "find" を使用して、元々 ajax で作成した呼び出しの html 内で tbody を見つけた後、html がどのように見えるか、およびこれまでに除外したものをリストしました。また、クロムのコンソールでconsol.log(変数名)に出力しています。コードの下に、このデータの目標をリストしました。これはクロムのみのアプリであり、他のブラウザーはコードを使用しないため、ブラウザー間の互換性については心配していません。

<tbody>
<tr>
<td><strong>Header 1</strong></td>
<td><strong>Header 2</strong></td>
<td><strong>Header 3</strong></td>
<td><strong>Header 4</strong></td>
<td><strong>Header 5</strong></td>
<td><strong>Header 6</strong></td>
<td><strong>Header 7</strong></td>
</tr>
<tr >
<td>image location link</td>
<td>another link</td>
<td>Product</td>
<td>New</td>
<td></td>
<td>date</td>
<td></td>
<td>another link to an account</td>
</tr>
<tr>
<td>image location link</td>
<td>another link</td>
<td>Product2</td>
<td>New</td>
<td></td>
<td>date</td>
<td></td>
<td>another link to an account</td>
</tr>
<tr>
<td>image location link</td>
<td>another link</td>
<td>Product</td>
<td>old</td>
<td></td>
<td>date</td>
<td></td>
<td>another link to an account</td>
</tr>
</tbody>

目標: 上記の Tbody には、リストされているよりも多くの tr がありますが、利用可能なもののサンプルです。毎回データを解析し、同じ製品タイプを含む td と "New" Listed を持つ td を持つ各 tr を見つける必要があります。

これについての皆さんの助けに本当に感謝し、あなたの反応を聞くのを楽しみにしています.

私がJqueryを使って試みたこと:

contains および each ループを使用して、新しいデータ オブジェクトを作成しようとしています。恐ろしく書かれたコードを提供する代わりに、可能であれば次のレベルに到達するのに役立つ素晴らしいフレームワーク コードを誰かが提供してくれることを願っています。

前もって感謝します!

4

1 に答える 1

1

したがって、新しいものを見つけたり、古いものを見つけたり、古いものを取り除くことができます。それはあなた次第です。

これは、2 番目のテーブルを提供する別の更新です。これで始められるはずです。基本的に、最初の「tr」はヘッダーであるためスキップし、4 番目の位置に New がある残りを見つけます。最も近いものは、dom を最初の親までトラバースします。

http://jsfiddle.net/JzUrq/2/

var data = $("#holder").html();

$("#newTable").append($(data).find("tr:eq(0)"));

$(data).find("tr:gt(0) :nth-child(4):contains('New')").closest('tr').each(function(index){
    var row = "<tr>"+$(this).html()+"</tr>";
    $("#newTable").append(row);
});

他にできることは、htmlをそのテーブル全体に設定し、古いものを単純に非表示にすることです。

于 2013-01-31T01:25:05.300 に答える