如何正确使用document.querySelectorAll()?

时间:2019-06-12 18:34:42

标签: javascript

我在这里和Reddit上问过如何使注释与孩子们折叠在一起,我想对所有帮助过我的人说谢谢,但是我对js一无所知,我对服务器端编程非常满意,他们告诉我要做很多我不了解的事情,而且我无法使其正常工作,而且我知道此问题有一个简单的解决方案,我认为我找到了使它在没有所有复杂性的情况下工作的逻辑。 >

这是我的html注释代码:

<div>
   <a onclick="return toggle(1, 7, 10)" href="javascript:void(0)">[-]</a>
   <div id="com1" class="com md" value="7-10" min="7">Yiiiihhaaa</div>
</div>

我要隐藏此评论:

<div>
   <a onclick="return toggle(2, 8, 9)" href="javascript:void(0)">[-]</a>
   <div id="com2" class="com md" value="8-9" min="8">Yiiiihhaaa</div>
</div>

这是我的js函数:

function toggle(id, lft, rgt) {
    var kids = (rgt - lft - 1) / 2;
    if (kids >= 1) {
        var element = document.querySelectorAll("div.com#com" + id)[0].getAttribute('value');
        var low = Number(element.split('-')[0]);
        var high = Number(element.split('-')[1]);
        for(var i = low + 1; i <= high - 1; i += 1){
            var x = document.querySelectorAll('div.com[min=i]')[0]//this is the problem
            if (x.style.display === "none") {
                x.style.display = "block";
            } else {
                x.style.display = "none";
            }
        }
    }

这是问题所在

for(var i = low + 1; i <= high - 1; i += 1){
                var x = document.querySelectorAll('div.com[min=i]')[0]//this is the problem

我想在文档中搜索class =“ com”的元素,这些元素的属性为min = x,其中x在父注释的值之间。

例如: 父注释的值为=“ 7-10”。 我想隐藏min = x和7 10

的所有注释

1 个答案:

答案 0 :(得分:1)

这是因为min属性将不等于“ i” ...
您必须将变量i的值插入“ i”位置。

因此,您应该执行以下操作:

document.querySelectorAll('div.com[min='+i+']')[0]