首页 > 解决方案 > 多个If语句逻辑问题

问题描述

我对 jQuery 很陌生,我对我正在制作的一些 jQuery 逻辑有一点问题,所以我已经包含了下面的代码。我有第一个 if 语句检查屏幕分辨率,第二个 if 语句检查有多少列表项,并且仅在 1 个或更多时运行,最后一个 if 语句确保只有一个 append 实例在内部运行AJAX 请求因此在输出多个实例时出现问题。

关于我哪里出错的任何建议?任何帮助都会很棒,谢谢:)

HTML:

<ul class="swatches color clearfix">
    <li class="selectable">
        <span class="swatchanchor js-swatchanchor js-colorswatch">
            List Item 1
        </span>
    </li>

    <li class="selectable">
        <span class="swatchanchor js-swatchanchor js-colorswatch">
            List Item 2
        </span>
    </li>
</ul>

jQuery

if($(window).width() >= 1358){
    var $lis = $('ul.swatches.color li');
    var $jsColorMsgCheck = $('.jsColorMsgError');



    if ($lis.length > 1) {
      if ($jsColorMsgCheck.length) {
        $(".swatches.color").parent().append($('<div class="jsColorMsgError">PLEASE SELECT A COLOUR</div>'));
      }
    }
}

标签: javascriptjqueryhtmlif-statement

解决方案


如果我正确理解了您尝试执行的逻辑,那么您可能会弄错两件事:

1)

第二个 if 语句正在检查有多少列表项,并且仅在 1 个或更多时运行

要检查 1 个或多个 if 应该是

if ($lis.length >= 1) {

因为$lis.length > 1将是 2 或更多。

2)

最后的 if 语句确保只有 1 个追加实例

如果你只想在没有.jsColorMsgErrordiv 的情况下执行代码,你可以使用

$jsColorMsgCheck.length == 0

更新的 codepen:https ://codepen.io/anon/pen/QoyOYN?editors=1111


推荐阅读