首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何获取条件为真的元素的所有ids?

如何获取条件为真的元素的所有ids?
EN

Stack Overflow用户
提问于 2019-06-11 03:14:33
回答 1查看 68关注 0票数 0

我正在尝试用js做一个切换函数来隐藏所有的注释和它的子类。这是一个html格式的评论:

代码语言:javascript
复制
 <div>
    <a onclick="return toggle(4 /*id*/, 7 /*lft*/, 10 /*rgt*/)" href="javascript:void(0)">[-]</a>
    <div id="com4" class="md" value="7-10">yellow</div>
 </div>

这个评论有一个子级value="8-9",我想用id="com4“和它的子级来隐藏评论。-->这是如何找到评论value="8-9”⬆的id的问题。

这是我的js:

代码语言:javascript
复制
function toggle(id, lft, rgt) {
    var kids = (rgt - lft - 1) / 2;
    if (kids >= 1) {
        var element = document.querySelectorAll("div.md").getAttribute('value');
        var low = Number(element.split('-')[0]);
        var high = Number(element.split('-')[1]);
        if (low > lft && high < rgt) {
            var x = //get the ids of these elements where: low>lft && high<rgt 
                if (x.style.display === "none") {
                    x.style.display = "block";
                } else {
                    x.style.display = "none";
                }
        }
    } else {
        var x = document.getElementById("com" + id);
        if (x.style.display === "none") {
            x.style.display = "block";
        } else {
            x.style.display = "none";
        }
    }
    return false;
}

我正在尝试查找孩子⬆的所有ids:

代码语言:javascript
复制
if (low > lft && high < rgt) {
                var x = //get the ids of these elements where: low>lft && high<rgt 

这是一张了解我的评论系统如何工作的图片:nested sets

提前感谢,我为我糟糕的英语感到抱歉;)

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-06-11 04:41:50

请看下面的代码:

代码语言:javascript
复制
 function toggle(id, lft, rgt) {
    var kids = (rgt - lft - 1) / 2;
    if (kids >= 1) {
        var element = document.querySelectorAll("div.md#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.md#com" + i)[0]
            if (x.style.display === "none") {
                x.style.display = "block";
            } else {
                x.style.display = "none";
            }
        }
    }
}
代码语言:javascript
复制
<div>
    <div id="com4" class="md" value="7-10">yellow 
        <a onclick="toggle(4, 7, 10)" href="javascript:void(0)">[-]</a>
    </div>
    
    <div id="com5" class="md">Should not collapse</div>
    <div id="com8" class="md">Should collapse</div>
    <div id="com9" class="md">Should collapse</div>
    <div id="com11" class="md">Should not collapse</div>
 </div>

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56532275

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档