Javascript 如何阻止表再次生成

Javascript 如何阻止表再次生成,javascript,jquery,html-table,Javascript,Jquery,Html Table,我从josh.trow@那里得到了一个可爱的table函数,它构建了一个可以填充颜色的4x4表。唯一的问题是,每次我调用函数时,它都会重建自身(因此,第一次调用文件时,我看到的是4x4表,第二次看到的是8x4表,依此类推)。它不会将行相乘,因为它们已经被限制为4 我看不出我需要做什么检查来限制表的列只生成一次。(四) 以下是JS代码: function repeatedFunction(L, G, P, D) { jQuery.fn.reverse = [].reverse; var comp

我从josh.trow@那里得到了一个可爱的table函数,它构建了一个可以填充颜色的4x4表。唯一的问题是,每次我调用函数时,它都会重建自身(因此,第一次调用文件时,我看到的是4x4表,第二次看到的是8x4表,依此类推)。它不会将行相乘,因为它们已经被限制为4

我看不出我需要做什么检查来限制表的列只生成一次。(四)

以下是JS代码:

function repeatedFunction(L, G, P, D) {
jQuery.fn.reverse = [].reverse;

var completeData = [L, G, P, D];
var max = 4;
$.each(completeData, function(intIndex, objValue) {
    if (objValue > max) max = objValue;
});
for (var i = 0; i < max; i++) 
{
    $('#statSheetTable').append('<tr id="resultRow' + i + '"></tr>');
    $.each(completeData, function(intIndex, objValue) {

    $('#resultRow' + i).append('<td name="column' + intIndex + '" ></td>');
    });
}

$.each(completeData, function(intIndex, objValue) {
    $('td[name=column' + intIndex + ']').reverse().each(function(idx, val) {
        if (idx < objValue) $(this).addClass('complete' + intIndex);
    });
});
}


您有经验的JS眼睛看到我可以限制表生成更多列的地方了吗?

首先,在比较布尔值时始终使用相同的比较运算符:

if(firstTime === true)
也就是说,如果只想重建表,就不需要它<代码>$('#statSheetTable')。追加(…只会“添加”其中的内容。请确保在开始时按如下方式清除它:

...
var max = 0;
$('#statSheetTable').html('');
...

首先,在比较布尔值时始终使用相同的比较运算符:

if(firstTime === true)
也就是说,如果您只想重建表,就不需要它。
$(“#statSheetTable”).append(…
只会“添加”其中的内容。请确保在开始时将其清除,如下所示:

...
var max = 0;
$('#statSheetTable').html('');
...

给你,长官,按你的要求更新

编辑:哎呀,现在它工作了:)


给你,酋长,按你的要求更新

编辑:哎呀,现在它工作了:)


无论是==还是===都不会改变结果,即没有重建列,但这也会损坏我的方法的颜色填充功能。我需要不重建列,并且函数的其余部分正常工作。如果==或===不改变结果,即不重建列,但这也会损坏方法的颜色填充功能。我需要两个列不被重建,并且函数的其余部分工作properly@Briz:该jQuery.fn.reverse不应位于函数内部-您可以看到我在哪里使用它-它只被调用一次-因为它修改了全局jQuery对象。@Briz:该jQuery.fn.reverse不应位于函数内部-您可以看到我在哪里使用它因为它修改了全局jQuery对象,所以只调用了一次。谢谢你和我分享你的造桌智慧!这一次,你得到了答案:D@Briz:别忘了我的评论-jQuery.fn.reverse定义不应该在函数中。再一次,你让我非常高兴。谢谢你和我分享你的造桌智慧!这一次,你得到了答案:D@Briz:不要忘记我的注释-函数中不应包含jQuery.fn.reverse定义。