【问题标题】:jQuery check for adjacent selectorjQuery 检查相邻选择器
【发布时间】:2011-04-08 15:19:20
【问题描述】:

我正在尝试检查是否存在相邻(下一个)选择器,但我显然写错了......

我的 HTML

<div id="container">
<div class="about"></div>
<div class="related"></div>
</div>

我的 jQuery:

jQuery(document).ready(function() {
console.log(jQuery("div.about").next().hasClass(".related"));
    if (jQuery("div.about").next().hasClass(".related"))
    {
        console.log("do something");
    }
});

我的第一个 console.log 显示 FALSE 而我的第二个根本没有显示...

【问题讨论】:

  • 第二个没有显示,因为jQuery("div.about").next().hasClass(".related") 是假的。它不会进入您的 if
  • 如果第一个控制台命令返回 false,您为什么希望第二个控制台命令运行,这就是您要检查的条件?你也可以使用更短的语法jQuery(".about + .related"))。你现在在 666 的代表把我吓跑了...... :)

标签: jquery conditional next


【解决方案1】:

它应该没有点。 hasClass 不带选择器,只带类名:

jQuery("div.about").next().hasClass("related")

或者:

jQuery("div.about").next('.related').length > 0

【讨论】:

  • 哇,谢谢!在接下来的 45 分钟里,我会一直盯着这个看,却没有弄清楚。
【解决方案2】:

不妨试试这个。

jQuery("div.about").next().hasClass("related");

只需删除.

【讨论】:

    【解决方案3】:

    您的 .hasClass 选择器中不需要 .

    jQuery(document).ready(function() {
        console.log(jQuery("div.about").next().hasClass("related"));
        if (jQuery("div.about").next().hasClass("related")) {
            console.log("do something");
        }
    });
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-05-13
      • 2011-03-25
      • 2011-10-16
      • 2019-05-05
      • 1970-01-01
      • 1970-01-01
      • 2014-08-04
      • 2021-11-17
      相关资源
      最近更新 更多