未捕获的ReferenceError:<firebase string =“”>未在HTMLTableRowElement.onclick

时间:2018-04-04 15:07:46

标签: javascript jquery firebase firebase-realtime-database

嘿伙计们,我创建了简单,动态的表,从Firebase读取数据。这是表的代码:

userRef.on("child_added", snap => {
                 var username = snap.child("name").child("name").val();
                 var user_surname = snap.child("name").child("surname").val();
$("#user_table").append("<tr onClick=\"displayCos(" + user_surname + ")\"><td>"+ username +"</td></tr>")

,你可以看到,此表显示的用户名,并且当我点击它,我想显示用户姓alert,这里&#39; S displayCos功能的代码:

function displayCos(surname){
  if(surname != null){
  $("#surname_id").text(surname)
  }else {
  $("#surname_id").text("null");
 }

这是我的错误,当我点击用户名时,调试程序会显示此错误:Uncaught ReferenceError: (Here is user surname, let say: JOHNSON) is not defined at HTMLTableRowElement.onclick。我还发现,当我在firebase中更改username_surname包含字母和数字的内容时,错误看起来像是:Uncaught SyntaxError: Invalid or unexpected token,当值只是数字时,一切正常。 我尝试了StackOverflow的所有解决方案,所有这些解决方案都不能解决我的问题。我认为我的价值不是字符串,因为它应该是jQuery和Javascript的新手,并且只能由我自己解决,所以我乞求帮助:)

@edit HTML代码,没有firebase详细信息,如果它们非常重要,我会更新它:

<html lang="en">
 <head>

  <title>Wyplata</title>
  <link rel="stylesheet" href="style.css">

 </head>

 <body>

   <div id="login_div" class = "login-page">
     <div class = "form">
       <div class = "register-form">

         <input type = "text" placeholder="Imie" id="email_field"/>
         <input type = "text" placeholder="Hasło" id="password_field"/>
         <button onclick="login()" > Zaloguj </button>

       </div>
    </div>
  </div>

  <div id="company_div" class = "company-page">
    <div id="user_table" class = "userui">
      <button onclick="logout()" > Wyloguj </button>
    </div>
  </div>

1 个答案:

答案 0 :(得分:1)

$("#user_table").append("<tr onClick=\"displayCos('" + user_surname + "')\"><td>"+ username +"</td></tr>")

见上文。您应该用引号括住user_name,以获得displayCos('Johnson')

如果得到displayCos(Johnson),则表示Johnson是变量名,JavaScript试图将此变量的值作为displayCos函数的参数传递。