【问题标题】:How to stop innerHtml repeating itself over and over again in a table?如何停止innerHtml在表格中一遍又一遍地重复自己?
【发布时间】:2014-07-14 12:22:49
【问题描述】:

我已经创建了一个数组,其中包含从三个不同的用户变量获取信息的对象,但是在其中一个上有许多子变量,我不希望它在每次用户按下选择按钮时重复自身(更新表格)而不是我希望它只是添加到(或删除)它已经在表格中的部分。谢谢(如果您需要可变代码,请告诉我)我已经尝试解决这个问题一段时间了!请帮忙!!

//creating array
var gProducts = new Array();
var gTotalCost = 0;



// Adding Products to array gProducts
    function addProduct
{
var product = new Object();
product.name = name;
product.cost = cost;
gProducts.push(product);
gTotalCost += parseInt(cost)
}


 //Getting products from array, use of for in loop setting new table rows in blank var for each array item
function renderProducts()
{
var HTMLadd = ""

for (var i in gProducts)
{
if( gProducts[i].cost > 0){
    HTMLadd = HTMLadd + 
    "<tr>"+ 
    "<td class='tableSettings00' id=tableRow2 >" + gProducts[i].name +
    "</td>"+
    "<td class='tableSettings'>€<span id=tableRow2part2>" + gProducts[i].cost +
    "</span></td>"+ 
    "</tr>";
    }
    else 
    {
    }
}
document.getElementById('tableRow').innerHTML = HTMLadd;

}

【问题讨论】:

    标签: javascript html arrays innerhtml for-in-loop


    【解决方案1】:

    您正在使用 for in 循环,而您可能只需要一个 for 循环。

    将此行改为

    for (var i in gProducts)
    

    for (var i = 0; i < gProducts.length; i++)
    

    使用 for/in 循环,变量 i 将是一个对象,而不是一个整数。

    【讨论】:

    • 谢谢,但我得到相同的结果?一切仍在重演!
    • 你是说每次rederProducts()运行时,表只是一遍又一遍地添加数组,还是数组有重复?
    • 它一遍又一遍地添加数组!所以有第一个数组,然后在它更新后有第一个以及新的
    • 这很奇怪,方法替换了innerHTML,当你更新数组时,你检查重复吗?
    • 发生了一些奇怪的事情,很遗憾,我无法为您提供帮助,因为您发布的代码应该可以代替 innerHTML。
    猜你喜欢
    • 2014-09-04
    • 1970-01-01
    • 2021-05-30
    • 2011-09-12
    • 1970-01-01
    • 2012-05-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多