我使用复选框树,并且以其可见状态进行游戏。这是一个包含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不是孩子。
如果要传递给函数的id
始终位于所需元素的后面,则可以使用adjacent sibling combinator (+
)选择并用+
替换Document.querySelectorAll()
: