2017-12-29 51 views
0

나는이 질문을 보았고 여기에 답했다. 그러나 나는 그것을 스스로 얻을 수는 없다. 나의 자바 스크립트 mysql 루프는 데이터베이스의 마지막 엔트리 만 보여주고있다. . 전자에서 간단한 내부 wiki를 만들고 mysql 데이터베이스에 저장된 몇 가지 범주를 나열하려고합니다.Node.js 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로 표시되는 하나의리스트 아이템이있다.

다른 답변은 루프의 각 반복마다 동일한 인스턴스를 단순히 덮어 쓰는 것으로 나타났습니다. 그 문제를 해결하는 방법을 이해하는 데 문제가 있습니다. 어떤 도움을 주셔서 감사합니다.

답변

0

.html() 대신 .append()을 사용하면 매번 덮어 쓰지 않고 항목을 추가 할 수 있습니다. 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.

+0

고마워요! 그것은 효과가 있었다. 심지어 jQuery라고 생각하지 않았습니다. –

1

빌드 및 for 루프에서 HTML 문자열을 추가, 다음() $를 호출 HTML을 루프의 외부에..