0

HTML からテキストを取得し、ブラウザでの表示と同じように適切な形式を維持したいと考えています。

これ欲しい

               CompanyName
              CompanyAddress
           Company Phone Number

       1  Item1   7.00   0%   7.00
       2  Item2   5.00   0%   5.00
                  TOTAL:         2
               SUBTOTAL:     12.00
                   CASH:     12.00

私はこれを取得しています

                    CompanyName
                   CompanyAddress
                Company Phone Number

                   1  

                   Item1   

                  7.00   
                   0%   

                     7.00

私のHTML:

<div id="printPreview" class="interprise-popover-container">
<div class="interprise-popover-header popover-header">
    <h1 class="title">Print Preview</h1>
    <a class="popover-btn left-popover-btn btn-Cancel">Cancel</a>
    <a class="popover-btn right-popover-btn btn-Done">Done</a>
</div>
<br class="clearfloat"/>
<div id="printPreviewBody" class="interprise-popover-content">
    <div id="print-area">
    <div id="print-header">
        <h4><%= Company %></h4>
        <h6><%= WarehouseAddress %></h6>
        <h6><%= WarehouseCity %>, <%= WarehouseState %> <%= WarehousePostalCode %></h6>
        <h6><%= PhoneNumber %></h6>
        <h6>www.fairysales.com</h6>
        <h5 style="margin-top: 5px;"><%= TransactionType %>#&nbsp;<%= InvoiceCode %></h5>
    </div>
    <div id="print-barcode" style="margin:0 auto; "></div>
    <span style="font-size: 12px;">Monday</span>
    <div>
        <table id="print-items" cellspacing="0" width="100%">
                        <tbody>
                          <tr>
                            <td align="right"> 1 </td>
                            <td align="left"> Item1<br></td>
                            <td align="right">12.00</td>
                            <td align="right">0%</td>
                            <td align="right"><div><abbr>12.00</abbr></div></td>
                          </tr>
                       </tbody>
        </table>
    </div>
    <div id="print-total">
    </div>
</div>
</div>

ちなみに私が使ったのは

$("#print-header").text(); to extract the text from the div

更新: ここに jsfiddle があります

http://jsfiddle.net/8yC5G/1/

私が達成したいのは、実際には結果と同じですが、テキスト形式であるため、javascript から目的の c に文字列として渡すことができます。

4

2 に答える 2

0

$("#print-header").html();使用することで問題は解決すると思います。

$ .text()ドキュメントおよび$ .html()ドキュメントを参照してください。

于 2012-07-24T10:47:29.263 に答える
0

あなたのHTMLは、あなたが望んでいると述べたものと矛盾しているため、バーコード、「月曜日」、「トランザクションタイプ」/「請求書」は必要ないと思います。また
、<%= WarehouseCity %>、<%= WarehouseState %> <%= WarehousePostalCode %> が隣り合っていると仮定します。

しかし、もっと重要なことは、「print-header」で vars を使用したため、この html ソースとその生成を制御していると思います。
次に、「print-items」と「print-total」の 2 つのテーブルを生成する var もあると思いますか?

変数があり、実際にそれらを「目的の c」に渡したい場合は、このデータを目的の c アプリケーションに送信してさらにタスクを実行するために使用するデータ形式を制御できます。

ただし、レンダリングされた html テキストと同等の (モノ) スペースのプレーン テキスト (顧客への htm-email でのテキストのみのフォールバックとしましょう) を目標 c への入力として引き続き使用したい場合は、次に、昔のようにデータについてもう少し考える必要があります: 最悪のシナリオでは、各フィールドには何文字が含まれますか? これは、追加/先頭に追加する必要がある空白文字の量です (テーブルの右揃え/左揃えをシミュレートするため)。これはそれほど難しいことではありません。

ここで、ブラウザに送信される html を構築する vars にアクセスできないとし
ましょう。次に、データを含む 'innerTEXT'/'textContent' をフェッチする html ブロッ​​クを再帰的に解析するために何か作業を行う必要があります。上記の手法(データ形式/計算/先頭に追加/追加)を行う前に、必要です(テーブルのセルの配置も確認できます)。

だから..変数を制御しますか?

お役に立てれば!

ps:私はモノスペース フォントをお勧めしました。
ps2: 私も実は疑問に思っています.. なぜ<div><abbr>12.00</abbr></div>??

更新:私はあなたのフィドルをいじって、あなたが望むことを正確に行う機能を構築しました。jsfiddle.net/8yC5G/3/を参照してください
関数の戻り関数はまだかなり汚れており、最適化を使用する可能性があります。多分私はもう少しいじるでしょう。注: FF でビルドおよびテストされ、「innerTEXT」の代わりに「textContent」を使用します。

UPDATE2: jsfiddle.net/8yC5G/6/ : 新しいルーチン、少しクリーンアップされ、短く、信頼性が向上しました。自動的にスケーリング:P

于 2012-07-25T02:28:37.713 に答える