多个If语句逻辑问题

时间:2019-03-01 09:47:35

标签: javascript jquery html if-statement

我对jQuery很陌生,我在编写一些jQuery逻辑时遇到了一个问题,因此我在下面添加了代码。我有第一个if语句检查屏幕分辨率,第二个if语句检查有多少列表项,并且仅在1个或多个条件下运行,最后一个if语句确保只有1个实例在内部运行一个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>'));
      }
    }
}

1 个答案:

答案 0 :(得分:0)

如果我正确理解了您要执行的逻辑,则可能会误认为两件事:

1)

  

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

要检查1个或多个,是否应该

public partial class MainWindow : Window
{
    public MainWindow()
    {
        InitializeComponent();
        DataContext = this;
    }

    ...

因为if ($lis.length >= 1) { 等于2或更多。

2)

  

最后的if语句,确保仅添加一个实例

如果您只想在没有$lis.length > 1 div的情况下执行代码,则可以使用

.jsColorMsgError

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