猿问

如何修复此错误“未捕获的 DOMException:

我试图像reddit一样隐藏孩子们的评论,我写了这个功能:


function toggle(id, lft, rgt) {

    var kids = (rgt - lft - 1) / 2;

    if (kids >= 1) {

        var element = document.querySelector("div.com#com" + id).getAttribute('value');

        var low = Number(element.split('-')[0]);

        var high = Number(element.split('-')[1]);

        for (var i = low + 1; i <= high - 1; i += 1) {

            const x = document.querySelectorAll('div.com[min=' + i + ']');

        }

        Array.from(x).forEach(comment => {

            if (comment.style.display === "none") {

                comment.style.display = "block";

            } else {

                comment.style.display = "none";

            }

        });

    }

例如,这是父评论:


<div> 

      <a onclick="return toggle(1, 1, 4)" href="javascript:void(0)">[-]</a>

       <div id="com1" class="com md" value="1-4" min="1">yellow</div>

</div> 

这是一个孩子的评论:


<div> 

     <a onclick="return toggle(2, 2, 3)" href="javascript:void(0)">[-]</a>

    <div id="com2" class="com md" value="2-3" min="2">hello </div>

</div> 

我想隐藏所有在父值 1 和 4 之间具有 min 属性的评论,并且这个子级具有 min=2 所以它必须被隐藏。但是js功能不起作用,那么问题出在哪里?

其他问题?

  • 我应该写在foreach里面for loop还是这样就可以了?

  • 如果标题中的错误已修复,该功能是否会起作用并且子评论将被隐藏,如果没有,为什么?


慕工程0101907
浏览 218回答 1
1回答
随时随地看视频慕课网APP

相关分类

JavaScript
我要回答