0

特定の要素の後に HTML 文字列を挿入しようとしています。しかし、jQuery は HTML コードを変更します。

これは私のコードです:

$(".poDetails")
    .find("tr")
    .eq(14).after('</table><div style="page-break-after: always;"></div><table>');

しかし、jQuery は以下を挿入します。

<div style="page-break-after: always;"></div><table></table>

これを防ぐ方法はありますか?ああ、何が悪いの?

ありがとう!

エドガー。

アップデート - -

これは完全なコードです:

    <table class="poDetails">
    <tr>
        <td>text</td>
    </tr>
    <tr>
        <td>text</td>
    </tr>
    <tr>
        <td>text</td>
    </tr>
    <tr>
        <td>text</td>
    </tr>

    n times...

</table>

これは私がやろうとしていることです:

<table class="poDetails">
    <tr>
        <td>text</td>
    </tr>
    <tr>
        <td>text</td>
    </tr>
    <tr>
        <td>text</td>
    </tr>

    //this is what i'm inserting. after tr number 14 (just assume that this is the 14 tr)
</table>
    <div style="page-break-after: always;"></div>
<table>

    <tr>
        <td>text</td>
    </tr> 

</table>
4

4 に答える 4

0

問題は、コード内のテーブルの開始タグと終了タグを単純に交換したことです。私はこれに答えるために私の人生でjQueryに触れたことがありません。ただ、APIやライブラリを予期しないことをしたと非難する前に、自分のコードの正確さにもっと注意を払う必要があると言ってください;)

于 2012-04-12T01:09:39.513 に答える
0

ここに変更された命令があります

var your_data = 'what ever you want to put';
$(".poDetails tr").eq(14).after(your_data);
于 2012-04-12T06:45:54.263 に答える
0

あなたが経験している問題は$('...')、html 要素でフォーマットを使用すると実際に要素が作成されることです。したがって、あなたが持っているコードでは、指定したすべての要素を作成しようとしています -ドキュメントに生の html を挿入しようとするのと同じではありません!

あなたがしたいのは.html('</table><div style="page-break-after: always;"></div><table>')、指定したhtmlをそのままjQueryに挿入させ、それを解釈しないようにすることです。

于 2012-04-12T01:23:44.057 に答える
0

.after()またはを使用.insertAfter()して、実際にページ内で DOM 要素を移動 できます。

$(".poDetails tr:gt(13)").wrap("<table/>").insertAfter( $(".poDetails"));
$(".poDetails").after("<div style='page-break-after: always;'></div>");

.poDetailsこれにより、インデックスが 13 より大きいtr 要素が選択され、テーブルにラップされ、 after に移動されますtable.poDetails

次に、2 つのテーブルの間に改ページ div を挿入します。

選択された jQuery オブジェクトを渡すと、.afterメソッドはそれらを複製または作成する代わりに移動します。.insertAfter( 、.before、およびにも当てはまります.insertBefore。)

于 2012-04-12T03:25:01.677 に答える