Jquery 在css伪类选择器下选择子类

Jquery 在css伪类选择器下选择子类,jquery,css,Jquery,Css,我使用的是引导选项卡,既在的正下方,也在.modal的内部。我需要通过css选择不在.modal中的选项卡。但这不起作用: var act = $("div:not(.modal) ul.nav li"; 除了忽略.modal内容外,它还选择.modals内的选项卡。这是一个已知的限制,这是可以实现的吗?有什么解决办法吗 <body> <div> ... <!-- More nested on actual code--&

我使用的是引导选项卡,既在
的正下方,也在
.modal
的内部。我需要通过
css
选择不在
.modal
中的选项卡。但这不起作用:

var act = $("div:not(.modal) ul.nav li";
除了忽略
.modal
内容外,它还选择
.modal
s内的选项卡。这是一个已知的限制,这是可以实现的吗?有什么解决办法吗

<body>
    <div>
        ...
        <!--  More nested on actual code-->
        <ul class="nav nav-tabs" role="tablist">
            <li role="presentation" class="active">
                <a href="#" data-toggle="tab">Tab 1</a>
            </li>
            <li role="presentation">
                <a href="#" data-toggle="tab">Tab 2</a>
            </li>
        </ul>
    </div>
    ...
    <div class="modal fade lookup" id="search-adjustment-report-header-modal">
        <div class="modal-dialog">
            <div class="modal-content">
                <div class="modal-body">
                    ...
                    <ul class="nav nav-tabs" role="tablist">
                        <li role="presentation" class="active">
                            <a href="#" data-toggle="tab">Tab 1</a>
                        </li>
                        <li role="presentation">
                            <a href="#" data-toggle="tab">Tab 2</a>
                        </li>
                    </ul>
                </div>
            </div>
        </div>
    </div>
</body>

...
... ...
实际上,我需要这个查询来设置一些cookie、选择的默认选项卡等。

var act=$(“ul.nav>li:not(div.modal ul.nav>li)”


工作正常:

在javascript中,我想我应该这样做:

识别所选选项卡:

var tabs = document.querySelectorAll('.nav-tabs li');

for (var i = 0; i < tabs.length; i++) {
    tabs[i].classList.add('selected-tab');
    var tabAncestor = tabs[i].parentNode;

    while (tabAncestor.nodeName !== 'BODY') {
        if (tabAncestor.classList.contains('modal')) {
            tabs[i].classList.remove('selected-tab');
        }
        tabAncestor = tabAncestor.parentNode;
    }
}
示例:

var tabs = document.querySelectorAll('.nav-tabs li');

for (var i = 0; i < tabs.length; i++) {
    tabs[i].classList.add('selected-tab');
    var tabAncestor = tabs[i].parentNode;

    while (tabAncestor.nodeName !== 'BODY') {
        if (tabAncestor.classList.contains('modal')) {
            tabs[i].classList.remove('selected-tab');
        }
        tabAncestor = tabAncestor.parentNode;
    }
}
var tabs=document.querySelectorAll('.nav tabs li');
对于(变量i=0;i
。所选选项卡a,span{
颜色:rgb(255,0,0);
}

具有所选选项卡类别的选项卡以红色显示

... ...

你能发布相关代码吗?这不是一个限制,而是对“not”如何工作的误解。你能添加最低限度的HTML来重现这个问题吗??