jQuery如果一个语句是真的而另一个不是吗?

时间:2014-09-05 16:40:41

标签: javascript jquery

现在我有一个jQuery脚本,看看if .shipping是否有一个带有.sp-methods类的后代,如果它是真的,它会向下滚动到页面的底部。

当前正在运行的jQuery

if ($('.shipping .sp-methods').length > 0) {
        $('.shipping').show();
    $('html, body').animate({
        scrollTop: $(document).height() - $(window).height()
    },
    1400,
        "easeOutQuint");
}

虽然我想要的是脚本只运行,如果那是真的并且带有ID#shopping-cart的元素不包含文本“shipping”或其任何后代。只是像这个运输里面的文字,而不是作为一个类或任何东西运输。可以包含吗?

我试过这个没有运气

破解jQuery

if ($('.shipping .sp-methods').length > 0 && ! $("#shopping-cart:contains('shipping')")) {
    $('.shipping').show();
    $('html, body').animate({
        scrollTop: $(document).height() - $(window).height()
    },
    1400,
        "easeOutQuint");
}

2 个答案:

答案 0 :(得分:1)

你应该让第二个条件遵循你的第一个条件。 所以试着检查第二个的长度:

编辑:看起来你也错过了'shipping'的单引号,更新了插入的答案。

if ($('.shipping .sp-methods').length > 0 && $("#shopping-cart:contains('shipping')").length <= 0) {
  $('.shipping').show();
  $('html, body').animate({
      scrollTop: $(document).height() - $(window).height()
  },
  1400,
      "easeOutQuint");
}

答案 1 :(得分:0)

那是因为$("somethingNonExistent")[](一个空数组)。您需要检查其长度,以便了解搜索选择器是否成功。