2016-08-17 4 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); 

document.getElementsByClassName( "class_name")を処理するif文を設定する適切な方法は何ですか?例えば

だから私は警告を持っています。 document.getElementsByClassName("swiper-slide swiper-slide-prev")でクラス名がswiper-slide swiper-slide-prevの要素が見つからない場合に返されるのは何ですか?あなたはif文でこれをどのように扱いますか?

+0

HTMLコードサンプルを追加できますか? –

+0

[Docs](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を返し、配列の長さの要素があるかどうかを知ることができます。ここに例があります:

明らかに、この要素にはクラス名が付いているため、クラス名があります。

私はこれがあなたを助けてくれることを願っています!

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

これは、スクリプトを小型化するときに役立ちます。

関連する問題