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 为空源文件: http ://itsuite.it.brighton.ac.uk/ks339/sem2/javascript/js.js行:76

希望有人可以对此提供一些见解,如果我完全关闭,请告诉我!

谢谢

编辑:清除div而不是删除它是否容易,我将如何做这样的事情?

4

4 回答 4

5

在 create_payment() 中,您将 ID 设置为“我的”。不应该是“支付”吗?

于 2012-05-08T13:39:32.507 回答
1

我不太了解您的要求,但是无论如何您不能使用相同的 id 属性在页面中创建多个项目,如果您想复制一个项目并且仍然可以控制它,您应该改用类。

尝试将您的代码转换为 jquery,这对您和我来说会更清晰、更容易理解。

于 2012-05-08T13:39:43.310 回答
1

您的问题是在 createPayment() 中您将 id 设置为“我的”:

payment.id = "mine";

稍后在 printOnPage() 中,您正在寻找使用 id 'payment' 的元素:

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

于 2012-05-08T13:46:05.560 回答
0

正如您在编辑中提到的那样,清除 div 比删除它要容易得多,特别是如果您以后仍然需要它。

要清除 DIV 块,只需将其内容设置为

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

我希望你能找到解决办法!祝你好运!

于 2012-05-08T13:54:09.657 回答