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

时间:2016-08-17 07:41:14

标签: javascript jquery

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语句中处理这个问题?

3 个答案:

答案 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>
&#13;
&#13;
&#13;

答案 1 :(得分:0)

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

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

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

答案 2 :(得分:0)

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

<DeviceCapability Name="serialcommunication">
  <Device Id="any">
    <Function Type="name:serialPort" />
  </Device>
</DeviceCapability>

显然这个元素有一个类名,因为你带着类名。

我希望这对你有帮助!