js 写的有问题么? 为啥不起作用?

<body>
    <p id="demo">
        <li>1</li>
        <li>1</li>
        <li>1</li>
        <li>1</li>
        <li>1</li>
        <li>1</li>
        <li>1</li>
        <li>1</li>
    </p>
</body>

<script>
    var num = document.getElementById('demo');
    var lis = document.getElementsByTagName('li').length;
    for (var i = 0; i < lis.length; i++) {
        if (i>4) {
            document.getElementsByTagName('li')[i].style.display = "none";
        }
    }
</script>

你的lis已经获取了“

”的个数了,循环里面不需要lis.length了
for (var i = 0; i < lis; i++) {
        if (i>4) {
            document.getElementsByTagName('li')[i].style.display = "none";
        }
    }
if (i>4) {
            document.getElementsByTagName('li')[i].style.display = "none";
        }