javascript - 新类jquery无法找到最近添加的类的元素

标签 javascript jquery css dom

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

HTML:

<style>
  .class-b { background: red; }
</style>

<div class="class-a">Hello!</div>
<div class="class-a">Hola!</div>
<div class="class-a">Bonjour!</div>

<button class="clicker">Click</button>

JS/jQuery:

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

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

当我应该在 console.log 中收到 Hello! 时,这不会返回任何内容。于是我想,也许函数还没有完成,类还没有渲染,因此找不到。因此,我从函数中删除了日志记录并将其插入回调中:

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());
});

关于javascript - 新类jquery无法找到最近添加的类的元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29780571/

相关文章:

javascript - 在 Google map 中对标记进行地理编码

javascript - 将 png 转换为 Three.js 平面中的高度

javascript - 如何在非 DOM 相关的对象及其属性上使用 jQuery 事件?

javascript - 如何为 Bootstraps 模态传递数据

javascript - 网页鼠标悬停的缺点

javascript - 添加内容时 Bootstrap 弹出框错位

javascript - 如何根据在模板小部件中完成的选择在小部件中进行选择(JS 触发)

javascript - 使用 Javascript 选择文档中的所有文本框?

javascript - 我需要更新我的 jQuery 代码

jquery - 从 jquery-ui 1.8.x 切换到 1.10.3 后, "tabs()"无法按预期工作......--是否有解决方法可以使 "tab key"再次工作?