用innerHTML把li添加到ul中

我console.log(a);a是<li>1</li><li>2</li><li>3</li><li>5</li><li>4</li>,
list.innerHTML = a;我是想把这个li添加到ul中,但在浏览器上却只输出了最后一个li,
请教下大家,想知道是哪方面出了问题

<body>
<ul id="list"></ul>
<script>
    var data=[1,2,3,5,4];
    (function () {
        var list = document.getElementById('list');
        for (var i = 0; i < data.length; i++) {
            var a = '';
            a += '<li>' + data[i] + '</li>';
            list.innerHTML = a;
        }

    })();

</script>
</body>
阅读 6.5k
2 个回答

你应该吧var a="";和赋值给innerHTML的这两行放在for循环之外,依照你现在的逻辑,每次循环都会先将变量a重置为空字符串,所以自然就只输出最后一个li

var data=[1,2,3,5,4];
(function () {
    var list = document.getElementById('list');
    var a = '';
    for (var i = 0; i < data.length; i++) {
        a += '<li>' + data[i] + '</li>';
    }
    list.innerHTML = a;
})();
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题