Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/453.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在使用firebase web再次调用javascript中的相同函数时清除旧数据_Javascript_Firebase - Fatal编程技术网

如何在使用firebase web再次调用javascript中的相同函数时清除旧数据

如何在使用firebase web再次调用javascript中的相同函数时清除旧数据,javascript,firebase,Javascript,Firebase,我正在尝试清除旧数据,并在同一分区上单击按钮从firebase数据库加载新数据。但当我第一次加载数据时,它工作正常,但当我尝试获取或加载新数据以替换新数据时,它会在旧数据的正下方显示数据 这是我的JS代码:- function getusersdata(ca) { var rootRef = firebase.database().ref().child("users").orderByChild('designation').equalTo(ca); rootR

我正在尝试清除旧数据,并在同一分区上单击按钮从firebase数据库加载新数据。但当我第一次加载数据时,它工作正常,但当我尝试获取或加载新数据以替换新数据时,它会在旧数据的正下方显示数据

这是我的JS代码:-

function getusersdata(ca)
{



        var rootRef = firebase.database().ref().child("users").orderByChild('designation').equalTo(ca);

    rootRef.on("child_added", snap =>{

        var name = snap.child("name").val();
        var designation = snap.child("designation").val();

        $("#ServicesData").append("<tr><td>" + name + "</td><td>" + designation + "</td></tr>");



    });




}
函数getusersdata(ca) { var rootRef=firebase.database().ref().child(“用户”).orderByChild(“名称”).equalTo(ca); rootRef.on(“添加的子对象”,snap=>{ var name=snap.child(“name”).val(); 变量名称=snap.child(“名称”).val(); $(“#ServicesData”)。追加(“+name+”“+designation+”); }); } 这是HTML代码:-

<button class="btn btn-primary" style="border: 0px; border-radius: 2px;" onclick="getusersdata('CA')" id="CA">CA</button> 
CA

CS

我怀疑答案在于你确定变量范围的方式

如果您希望相关变量随函数一起消失,则需要将它们声明为该函数的局部变量。在JavaScript中,未声明的变量会自动变为全局变量。然后,全局变量将在函数调用中保持持久性

如果出于某种原因(或者如果这确实需要是一个全局变量),不需要进行局部声明,那么您将希望在该函数的后续函数调用之间的某个位置重置所需的变量


(一般来说,所有变量都应该在各自作用域的开始处声明。也有例外,但这通常是一个很好的目标。)

问题在于
$(“#ServicesData”)。append()

将新结果追加(添加)到现有DOM表中。您必须首先从旧数据集中删除
,然后从结果集中追加新的

类似于
$(“#ServicesData tr”).remove()
,如果我没记错的话


您的表格标题应使用
以避免删除它

你看过关于范围的那一页了吗?如果要在包含变量的函数结束时重置或停止变量以使其存在,则该变量必须是局部变量。否则,如果再次调用该函数,则必须重置该变量,以便从空状态重新使用。