【问题标题】:what is the proper way to set up an if statement to handle document.getElementsByClassName("class_name") undefined?设置 if 语句来处理 document.getElementsByClassName("class_name") undefined 的正确方法是什么?
【发布时间】:2016-12-23 18:23:26
【问题描述】:
var prev = document.getElementsByClassName("swiper-slide swiper-slide-prev");
var next = document.getElementsByClassName("swiper-slide swiper-slide-next");

alert(prev[0].className===undefined);

例如:

所以我有警报。当document.getElementsByClassName("swiper-slide swiper-slide-prev") 没有找到类名为swiper-slide swiper-slide-prev 的元素时返回什么?你会如何在 if 语句中处理这个问题?

【问题讨论】:

  • 能否添加您的 HTML 代码示例?
  • 你的问题不清楚。你需要的逻辑是什么?

标签: javascript jquery


【解决方案1】:

您可以简单地使用对象的length 来检查您的选择器是否找到了某些东西。

var prev = document.getElementsByClassName("swiper-slide swiper-slide-prev");
var next = document.getElementsByClassName("swiper-slide swiper-slide-next");

if( !prev.length ) {
    alert("no prev");
}

if( !next.length ) {
    alert("no next");
}
<div class="swiper-slide swiper-slide-next"></div>

【讨论】:

  • 非常感谢 eisbehr
【解决方案2】:

document.getElementsByClassName 返回找到的元素数组。如果未找到,则为空。

所以你可以检查if(prev.length === 0)

顺便说一句。您可以轻松地在浏览器中试用这个。

【讨论】:

    【解决方案3】:

    getElementsByClassName 返回一个ARRAY,你可以知道你是否有一个数组长度的元素。这是一个例子:

    var prev = document.getElementsByClassName("swiper-slide swiper-slide-prev");
    var next = document.getElementsByClassName("swiper-slide swiper-slide-next");
    
    if(prev.length > 0 ){
       alert(prev[0].className);
    }
    

    很明显这个元素有一个类名,因为你用类名来获取它。

    希望对你有帮助!

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-02-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-09-18
      • 2011-01-24
      • 2020-09-14
      • 2016-04-09
      相关资源
      最近更新 更多