【发布时间】:2018-04-05 15:01:43
【问题描述】:
大家好,我创建了从 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 中显示用户姓氏,这是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 的新手,并且不能仅靠我自己弄清楚,所以我正在寻求帮助:)
@编辑 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>
【问题讨论】:
-
你能在你的问题中添加你的 javascript 生成的 HTML 吗?
-
另外,您提到“firebase 中的用户名姓氏”,但您的代码显示 snap.child("name").child("surname").val();
-
哦,不,我当然在更改“姓氏”值,只是在我写这个问题时有点失败。
-
我们应该看到的是 id="user_table" 的 div 中到底注入了什么。你能用浏览器检查器看到它吗?顺便说一句,你不应该在没有
标签的情况下将一些 TR 直接注入到 div 中(它可能有效,但它不是正确的 HTML)。
我可以从浏览器检查器中看到的是,当我点击姓氏为“Johnson”的用户名时,除了已经打开的 index.js 文件之外,浏览器检查器还会打开名为 (index) 的文件,并且在这里是第 1 行:displayCos(Johnson)。 “Johnson”被高亮显示,错误是:未捕获的 ReferenceError: Johnson is not defined at HTMLTableRowElement.onclick
标签: javascript jquery firebase firebase-realtime-database