0

私はしばらくこれに苦労してきましたが、これには簡単な答えがあると確信しています。何が起こるかというと、「支払い」という div を削除してから、動的に再度作成して追加できるようにすることです。追加する必要がある情報が変更されると、それが繰り返されます。

これまでのところ、これを取得するためにマンガを作成しました。

function clearPage()
{
    var d = document.getElementById("contain"); 
    var d_nested = document.getElementById("payment"); 
    var deleteNode = d.removeChild(d_nested);

}

function createPayment()
{
    payment = document.createElement("div");
    payment.id = "mine";
    document.getElementById("contain").appendChild(payment);
}

function printOnPage()
{
    var x = names.length;
    for( var i = 0 ; i < x ; i++ )
    {
        var para = document.createElement("p");
        var paymentDiv = document.getElementById("payment");
        paymentDiv.appendChild(para);
        var txtName = document.createTextNode("Item: ");
        para.appendChild(txtName);
        var txtNameArray = document.createTextNode(names[i]);
        para.appendChild(txtNameArray);
        var txtQty = document.createTextNode(" Qty: ");
        para.appendChild(txtQty);
        var txtQtyArray = document.createTextNode(qty[i]);
        para.appendChild(txtQtyArray);
        var txtCost = document.createTextNode(" Cost: ");
        para.appendChild(txtCost);
        var txtCostArray = document.createTextNode(prices[i]);
        para.appendChild(txtCostArray);
    }
}

関連する HTML

<div id="contain">
    <p>Payment</p>
        <div id="payment">  
            <br />
        </div>
</div>

CSS ルールと、そこに含まれるテキストの作成の両方に支払い ID が必要です。

これは、FireFox で発生するエラーです。

エラー: paymentDiv が null ソース ファイル: http://itsuite.it.brighton.ac.uk/ks339/sem2/javascript/js.js行: 76

誰かがこれについての洞察を提供してくれることを願っています。私が完全にオフになっているかどうか教えてください!

ありがとう

編集:divを削除するよりもクリアする方が簡単ですか?どうすればそのようなことを行うことができますか?

4

4 に答える 4

5

create_payment() で、ID を「mine」に設定します。「支払い」じゃないの?

于 2012-05-08T13:39:32.507 に答える
1

あなたの問題は、createPayment()でidを'mine'に設定しているという事実です:

payment.id = "mine";

後でprintOnPage()で、id'payment'を使用して要素を探しています。

var paymentDiv = document.getElementById("payment");

于 2012-05-08T13:46:05.560 に答える
1

私はあなたの要件をよく理解していませんが、同じ id 属性を使用してページ内に複数のアイテムを作成することはできません.アイテムを複製してそれを制御したい場合は、代わりにクラスを使用する必要があります.

コードをjqueryに切り替えてみてください。あなたと私にとってよりクリーンで理解しやすくなります。

于 2012-05-08T13:39:43.310 に答える
0

編集で言及したように、特に後で必要な場合は、divを削除するよりもdivをクリアする方がはるかに簡単です。

DIV ブロックをクリアするには、コンテンツをemptyに設定するだけです:

document.getElementById('payment').innerHTML = "";

解決策が見つかることを願っています!幸運を!

于 2012-05-08T13:54:09.657 に答える