Javascript 新类jquery找不到具有最近添加的类的元素

Javascript 新类jquery找不到具有最近添加的类的元素,javascript,jquery,css,dom,Javascript,Jquery,Css,Dom,我试图从同一函数中给定了类的元素中获取信息,但未找到该类: HTML: 当我应该得到Hello时,它不会返回任何内容在我的控制台中.log。然后我想,可能函数还没有完成,类还没有呈现,因此找不到。因此,我从函数中删除了日志记录,并将其插入回调: var $b = $(".class-b"); function c_log() { console.log($b.html()); } $(".clicker").click(function() { $(".class-a:first

我试图从同一函数中给定了类的元素中获取信息,但未找到该类:

HTML:

当我应该得到
Hello时,它不会返回任何内容在我的
控制台中.log
。然后我想,可能函数还没有完成,类还没有呈现,因此找不到。因此,我从函数中删除了日志记录,并将其插入回调:

var $b = $(".class-b");

function c_log() {
  console.log($b.html());
}

$(".clicker").click(function() {
    $(".class-a:first").addClass("class-b");
    c_log();
});

但仍然没有任何回报。我是否忽略了DOM中的某些内容?

您的
$b
是此时所有类名为“.class-b”的元素。仅仅因为您给了一个新元素“.class-b”的类名,并不意味着
$b
将被更新

只需重置您的
$b

$(".clicker").click(function() {
    $(".class-a:first").addClass("class-b");
    $b = $('.class-b');
    console.log($b.html());
});

错误的是,
$b
是在
之前定义的。class-a:首先
被赋予类
.class-b
,因此
$b.html()
是未定义的,因为
.class-b
中没有元素。添加类时,需要重新定义
$b

var $b = $(".class-b");

function c_log() {
  console.log($b.html());
}

$(".clicker").click(function() {
    $(".class-a:first").addClass("class-b");
    $b = $(".class-b");
    c_log();
});
当你写下:

var $b = $(".class-b");

它实际上是将任何当前的
b
放入
$b
变量中。当您稍后在代码中使用
$b
时,它不会回顾性地检查新添加的内容。在
单击
回调中放上一行,每次都会重新检查它,您是金色的。

$b怎么知道,在声明之后,您会向元素添加一个名为“class-b”的类?您需要在click事件中重新定义b。简而言之,$b不会自动更新。
var $b = $(".class-b");

function c_log() {
  console.log($b.html());
}

$(".clicker").click(function() {
    $(".class-a:first").addClass("class-b");
    $b = $(".class-b");
    c_log();
});
var $b = $(".class-b");