1

最初のステップで追加ボタンをクリックしてフィールドにデータを入力することでフィールドを追加できるフォームがあります。2 番目のステップで、このデータを表示したいのですが、ループが正しくありません。

これが元のテーブルです。追加ボタンをクリックすると、新しい ID (item2、Ditem2...) を持つ新しい tr タグが生成されます。

<table cellpadding="0" cellspacing="0" class="table" id="rp-article">
    <tbody>
        <tr class="rowb">
            <td class="col1 cell">
                <input disabled="disabled" id="count1" maxlength="10" name="count1" size="1"
                type="text" value="1" />
            </td>
            <td class="col2 cell">
                <input id="item1" maxlength="100" name="item1" size="15" type="text" value="Artikelnummer"
                />
            </td>
            <td class="col3 cell">
                <input id="Ditem1" maxlength="100" name="Ditem1" size="48" type="text"
                value="Beschreibung..." />
            </td>
            <td class="col4 cell">
                <input id="Aitem1" maxlength="100" name="Aitem1" size="5" type="text"
                value="Menge" />
            </td>
            <td class="col5 cell">
                <input id="Pitem1" maxlength="100" name="Pitem1" size="10" type="text"
                value="Preis" />
            </td>
            <td class="col6 cell">
                <select id="Ritem1" name="Ritem1">
                    <option>Retourengr&uuml;nde:</option>
                    <option>Ware falsch geliefert / falscher Inhalt</option>
                    <option>Ware falsch bestellt</option>
                    <option>Ware gef&auml;llt nicht</option>
                    <option>Ware passt nicht</option>
                    <option>Ware doppelt geliefert</option>
                    <option>Sonstiges</option>
                    <option>Ware defekt/besch&auml;digt/fehlerhaft</option>
                </select>
        </tr>
    </tbody>
</table>

ここで、それらすべてを取得して p-Tag に表示したいと思います (n は tr の量のカウント変数です)。

for (var x = 1; x = n; x++) {
  $('#pt_title2').after('<p id=#pt_article' + x'></p>');
  $('#pt_article'+x).html('<b>#' + x'</b>'); 
}
4

1 に答える 1

1

for ループが正しくありません。代わりにこれを試してください:

for (var x = 1; x < n; x++) { // <--- note the < instead of =
  $('#pt_title2').after('<p id=#pt_article' + x + '></p>'); // you were missing a +
  $('#pt_article'+x).html('<b>#' + x + '</b>');  // same here
}

xこれで、ループは...より小さい限り実行されnます。これはあなたが望むと思います。

<=x が n と同じ値になるまでループを実行したい場合は、(less than or equal to)を使用する必要があるかもしれません。要素のカウント、ID などの設定方法によって異なります。

for ループの条件は「これが true になるまで実行」ではなく、「これが true の実行」です。

また、jQuery のeach functionもチェックしてください。

于 2012-09-27T08:10:17.557 に答える