Node.js mysql循环仅显示最后一个条目

亚历克斯·阿特金斯(Alex Atkins)

我在这里已经看到并询问了这个问题,但是我似乎无法自己解决这个问题:我的javascript mysql循环仅显示数据库中的最后一个条目。我正在用电子建立一个简单的内部Wiki,并试图列出存储在mysql数据库中的某些类别。

<script>
const mysql = require('mysql');
const marked = require('marked');
var db = mysql.createConnection({
  host: 'localhost',
  user: 'root',
  password: '',
  database: 'database'
});
db.connect();

$sqlnav = 'SELECT * FROM categories;'
db.query($sqlnav, function(error, rows, fields){
  if (error) throw error;
  for (var i = 0; i < rows.length; i++) {
    console.log(rows[i]);
    $('nav > ul').html('<li>' + rows[i].category + '</li>');
  }
});
</script>
<nav>
  <ul>
  </ul>
</nav>
console.log正确显示了每一行,但是html中仅显示一个列表项。

其他一些答案表明,我只是在循环的每次迭代中都覆盖了相同的实例,只是在理解如何摆脱这种情况方面遇到了麻烦。感谢您的帮助。

雪莉

使用.append()而不是,.html()因此您添加项目而不是每次都覆盖它。

从JQuery文档中:

When .html() is used to set an element's content, any content that was in that element is completely replaced by the new content. Additionally, jQuery removes other constructs such as data and event handlers from child elements before replacing those elements with the new content.

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章