css JQuery选择所有任意父类具有类X的地方

vlf7wbxs  于 2023-01-14  发布在  jQuery
关注(0)|答案(1)|浏览(101)

我正在尝试找出一个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

mwngjboj

mwngjboj1#

您可以使用x > y子选择器来解决这个问题。x > * > zz与祖父x匹配(中间的父可以是任何值)。

let hidden_inputs = $('.d-none > * > input[name=ide_layout_std\\[\\]]:hidden');

相关问题