我正在尝试将类添加到预先存在的元素中,我正在尝试最简单的代码。任何人都知道为什么两个日志会返回完全相同的元素?
console.log($('.btn-group.archive'));
$('.btn-group.archive').addClass('open');
console.log($('.btn-group.archive'));
可能值得一提的是我正在使用Twitter Bootstrap的下拉菜单,因此我不知道是否有任何东西搞乱它。
他们回来了:
<div class="btn-group archive">
<a class="btn dropdown-toggle" data-toggle="dropdown" href="#">
Select
</a>
<ul class="dropdown-menu"><!-- dropdown menu links -->
<li><a href="#">Item #1</a></li>
<li><a href="#">Item #2</a></li>
</ul>
</div>
<div class="btn-group archive">
应该是<div class="btn-group archive open">
。
控制台正在正确记录,但该类不会添加。
答案 0 :(得分:1)
所以我认为这只是一个时间问题而且console.log
命令会让你失望 - 但命令确实有效,按照你指定的顺序发生。 / p>
举个例子 - Live Demo
<div id="foo"></div>
$(function(){
console.log($("#foo"));
setTimeout(function(){
$("#foo").addClass("bar");
console.log($("#foo"));
},40);
});
输出 -
[<div id="foo"></div>]
[<div id="foo" class="bar"></div>]
对于console.log
的两次调用,任何小于40毫秒的间隔都会产生相同的输出 - 但这可能因机器和浏览器而异。
我不确定你是否熟悉缓冲输出的概念,而不是在它出现时刷新所有输出......但是这种行为可以在许多不同的语言中看到。我不是JavaScript的专家所以我不是百分之百确定这是什么(输出被缓冲)......