2016-08-17 92 views
0
var prev = document.getElementsByClassName("swiper-slide swiper-slide-prev"); 
var next = document.getElementsByClassName("swiper-slide swiper-slide-next"); 

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

例如:什么是设置if语句来处理document.getElementsByClassName(“class_name”)undefined的正确方法?

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

+0

您可以添加您的HTML代码示例吗? –

+0

[文档](https://developer.mozilla.org/en-US/docs/Web/API/Document/getElementsByClassName) –

+0

您的问题不清楚。你需要什么逻辑? –

回答

3

您可以简单地使用该对象的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>

+0

非常感谢eisbehr –

+0

不客气,@WebDevMike! – eisbehr

0

document.getElementsByClassName返回找到元件的阵列。如果未找到,则为空。

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

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

0

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); 
} 

显然这个元素有一个类名,因为你把它与类名一起使用。

我希望这可以帮助你!

-1

检查结果数组的长度是一个整洁且易于理解的方法,但如果您关心脚本的大小,可以直接将赋值语句if语句。

if (var prev = document.getElementsByClassName("swiper-slide swiper-slide-prev")) { 
    // Found element(s) 
} 

if (! var next = document.getElementsByClassName("swiper-slide swiper-slide-next")) { 
    // Didn't find any element 
} 

这会在缩小脚本时有所帮助,你会这么做。

相关问题