[英]Node.js - Async.js map function only showing results of the last iteration?
[英]Node.js mysql loop only showing the last entry
我已經看過這個問題並在這里回答了,但我似乎無法自己解決這個問題:我的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>
其他一些答案表明,我只是在循環的每次迭代中都覆蓋了相同的實例,只是在理解如何擺脫困境方面遇到了麻煩。 感謝您的幫助。
在for循環中生成並附加一個html字符串,然后在循環外調用$()。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.
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.