javascript - 多个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>'));
}
}
}
解决方案
如果我正确理解了您尝试执行的逻辑,那么您可能会弄错两件事:
1)
第二个 if 语句正在检查有多少列表项,并且仅在 1 个或更多时运行
要检查 1 个或多个 if 应该是
if ($lis.length >= 1) {
因为$lis.length > 1
将是 2 或更多。
2)
最后的 if 语句确保只有 1 个追加实例
如果你只想在没有.jsColorMsgError
div 的情况下执行代码,你可以使用
$jsColorMsgCheck.length == 0
更新的 codepen:https ://codepen.io/anon/pen/QoyOYN?editors=1111
推荐阅读
- ansible - 使用ansible循环主机变量
- google-apps-script - 在 getvalue() Google 表格中排除带有空白单元格的行
- react-native - React 本机应用程序未检测到订阅是否有效
- python - 在日志文件中每一行的开头打印特定的字符串
- java - java在javafx项目的intellij中找不到方法setTitle()和show()(在Ubuntu机器中)
- java - Spring Boot 测试和 Jackson - 在测试中从上下文设置 (application.yml) 中获取 ObjectMapper 的实例,无需开销配置
- sql - 如何在单个列上使用 distinct 并在 bigquery 中返回多个其他列?
- android - 电话响铃时会发生哪个活动生命周期?
- python - 我尝试了其他方法,但我仍然犯了错误。TypeError:'str' object is not callable
- python-3.x - 获取与同一列下的两个值匹配的记录(寻找共享关联)