javascript - jQuery 'not' 函数给出虚假结果

标签 javascript jquery

做了一个 fiddle :http://jsfiddle.net/n6ub3/

我知道代码中有很多重复,一旦功能正确,就可以重构它。

我想要实现的行为是,如果页面加载时没有 selectedTab,则将每个组中的第一个选项卡设置为 selectedTab。如果存在 selectedTab,则使用它作为默认显示的 div。

但是,正如您从 fiddle 中看到的那样,它没有按计划工作!

如果有人有任何想法如何重构这段代码,那就太好了!

最佳答案

改变

 if($('.tabs1 .tabTrigger:not(.selectedTab)')){
                $('.tabs1 .tabTrigger:first').addClass('selectedTab');
        }

if ( !$('.tabs1 .tabTrigger.selectedTab').length ) {
    $('.tabs1 .tabTrigger:first').addClass('selectedTab');
}

演示地址:http://jsfiddle.net/n6ub3/1/


如果至少有一个,您将添加 .selectedTab 类(第一个代码部分)该组中在开始时未选择的选项卡..(这意味着始终)


更新

有关缩短版本,请参阅 http://jsfiddle.net/n6ub3/7/

关于javascript - jQuery 'not' 函数给出虚假结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7334000/

相关文章:

jquery - 是否可以使元素对 jquery 不可见

jquery - 如何在表单上添加由输入字段更新触发的不可见 AJAX 提交,同时保留自然提交?

javascript - 在 WebSocket 上接收 ArrayBuffer (ws)

javascript - 无法使用 ExpressJS 路由器映射路由文件

javascript - jQuery 在内联 onclick 中传递对象

javascript - 在运行时使用 jquery 准备表体会导致设计问题

javascript - 类型错误 : d is not a function in jsPlumb

javascript - 如何向下滚动整个 div 以及如何突出显示事件 div

jquery - 克隆的 HTML 元素未显示

java - 需要在 HTML+JavaScript 的客户端和 Java/C++ 的服务器端程序之间进行通信