個人的によく使っているif文のパターンをまとめてみました。
サンプルコード
要素があるかどうか
HTML
<div id="sample"></div>
JavaScript
$(function() {
if($('#sample').length) {
// #sampleがあるときの処理
alert('#sampleあり');
} else {
// #sampleがないときの処理
alert('#sampleなし');
}
});
指定した要素がid/classを持っているか
HTML
<div id="sample" class="sample"></div>
JavaScript
$(function() {
if($('#sample').hasClass('sample')) {
// .sampleがあるときの処理
alert('.sampleあり');
} else {
// .sampleがないときの処理
alert('.sampleなし');
}
if($('.sample').attr('id') == 'sample') {
// #sampleがあるときの処理
alert('#sampleあり');
} else {
// #sampleがないときの処理
alert('#sampleなし');
}
});
要素が表示されているか
HTML
<div id="sample"></div>
JavaScript
$(function() {
if($('#sample').is(':visible')) {
// #sampleが表示されている時の処理
alert('#sample表示');
} else {
// #sampleが表示されていない時の処理
alert('#sample非表示');
}
});
CSSの値で判別
HTML
<div id="sample"></div>
CSS
#sample {
position: relative;
width: 400px;
}
JavaScript
$(function() {
if($('#sample').css('position') == 'relative') {
// position: relative;が指定されている時
alert('position: relative;が指定されています');
} else {
// position: relative;が指定されていない時
alert('position: relative;は指定されていません');
}
if(parseFloat($('#sample').css('width')) < 500) {
// widthが500未満の時
alert('widthは500未満です');
} else {
// widthが500以上の時
alert('widthは500以上です');
}
});
○の倍数
JavaScript
$(function() {
for(var i = 1; i < 10; i++) {
if(i % 3 == 0) {
// iが3の倍数の時
console.log(i);
} else {
// iが3の倍数でない時
}
}
});
フォーム関連
HTML
<div id="sample"> <input type="text" value="サンプルテキスト" /><br /> <select> <option value="">選択してください</option> <option value="select01" selected>サンプル1</option> <option value="select02">サンプル2</option> </select><br /> <input type="radio" name="radio" value="radio01" checked />サンプル01 <input type="radio" name="radio" value="radio02" />サンプル02 <input type="radio" name="radio" value="radio03" />サンプル03<br /> <input type="checkbox" name="checkbox" value="checkbox01" checked />サンプル01 <input type="checkbox" name="checkbox" value="checkbox02" />サンプル02 <input type="checkbox" name="checkbox" value="checkbox03" />サンプル03<br /> </div>
JavaScript
$(function() {
if($('#sample input:text').val()) {
// inputに値が入っている時
alert($('#sample input:text').val());
} else {
// inputに値が入っていない時
}
if($('#sample select').val()) {
// selectが選択されている時
alert($('#sample select').val());
} else {
// selectが選択されていない時
}
if($('#sample input:radio').val()) {
// radioが選択されている時
alert($('#sample input:radio').val());
} else {
// radioが選択されていない時
}
if($('#sample input:checkbox').val()) {
// checkboxが選択されている時
alert($('#sample input:checkbox').val());
} else {
// checkboxが選択されていない時
}
});
アニメーション中かどうか
HTML
<div id="move"></div>
CSS
#move {
position: absolute;
top: 0;
left: 0;
}
JavaScript
$(function() {
$('#move').animate({
top: 500,
left: 300
}, 1500);
if($('#move').is(':animated')) {
// #moveがアニメーションしている時
console.log('動いています');
} else {
// #moveがアニメーションしていない時
}
});
補足:アニメーション中かどうかの判別方法
$(function() {
// アニメーション中の要素に対する処理
$('#move:animated').addClass('moving');
// アニメーションしていない場合に処理
$('#move').not(':animated').animate({
left: 300
});
// アニメーションしていない場合に処理
$('#move:not(:animated)').animate({
left: 300
});
});
ユーザーエージェント
JavaScript
var ua = navigator.userAgent;
if (ua.indexOf('iPad') > 0 || ua.indexOf('iPhone') > 0 || ua.indexOf('iPod') > 0 || ua.indexOf('Android') > 0) {
// スマホ・タブレットの時
alert('SPかタブレットです');
}else{
// PCの時
alert('PCです');
}
コメントが承認されるまで時間がかかります。