如何在querySelectorAll正则表达式中指定数字

问题描述 投票:-1回答:1

我使用复选框树,并且以其可见状态进行游戏。这是一个包含3个复选框的简单树

<div id="d1">
    <input type="checkbox" id="c1"  onclick="gestion('1')" >
    <label>1</label>
</div>
<div id="d1.1" class="initialHide">
    <input type="checkbox" id="c1.1" onclick="gestion('1.1')">
    <label>1.1</label>
</div>
<div id="d1.1.1" class="initialHide">
    <input type="checkbox" id="c1.1.1" onclick="gestion('1.1.1')">
    <label>1.1.1</label>
</div>

这是我脚本的开头

function gestion(id){
    var rechercheDiv='[id^="d'+id+'."]';
    var listDiv = document.querySelectorAll(rechercheDiv)

这里是我的问题:我只想选择当前复选框的div的子div。 d1只有d1.1作为直接子代。但是我在querySelectorAll中使用的正则表达式返回所有子级div。

是否有一种方法可以修改我的正则表达式以仅获取直接子代?伪代码以d开头,然后以id开头。然后数字然后没有其他。例如:给定d1 d1.1是孩子,而d1.1.1不是孩子。

javascript css-selectors selectors-api
1个回答
0
投票

如果要传递给函数的id始终位于所需元素的后面,则可以使用adjacent sibling combinator (+)选择并用+替换Document.querySelectorAll()

© www.soinside.com 2019 - 2024. All rights reserved.