我正在尝试找出一个jquery选择器,可以从中获取名称为A的所有DOM元素,这些元素还具有类为X的祖元素。下面是一个HTML示例,我将使用其中的许多元素
<div class="interface_controlgroup">
<div class="form-switch me-3">
<input name="layout[]" type="checkbox" class="form-check-input">
</div>
</div>
<!-- note some inputs will have "d-none" on the grandparent -->
<div class="interface_controlgroup d-none">
<div class="form-switch me-3">
<input name="layout[]" type="checkbox" class="form-check-input">
</div>
</div>
...
<!-- repeated -->
现在,我将选择所有输入,以及祖父具有d-none
的所有输入
let all_inputs = $('input[name=layout\\[\\]]');
//cannot use this because the entire section may be hidden when this is run
let hidden_inputs = $('input[name=layout\\[\\]]:hidden');
//I need something more like
let hidden_inputs = $('input[name=ide_layout_std\\[\\]]'.parent().parent()".d-none");
我正在寻找一个解决方案,允许我只在父节点的父节点有某个类时才进行选择,但我不知道如何创建这个匹配,我也不能依赖jquery选择器中的":hidden"
,因为当这个javascript运行时,整个节/页面可能会被隐藏。
使用JQuery 3.6和 Bootstrap 5
1条答案
按热度按时间mwngjboj1#
您可以使用
x > y
子选择器来解决这个问题。x > * > z
将z
与祖父x
匹配(中间的父可以是任何值)。