class属性の追加および削除

class属性を追加
	jQuery('#test').addClass('class1');

class属性を削除
	jQuery('#test').removeClass('class1');


応用について

class属性を追加したり削除したりすることによって、CSSスタイルの適用を動的に変化させることができる。


CSSをグループ化し一括でCSS適用する


	<style>
	.animal .neko{
		color:red;
	}
	.animal .inu{
		color:blue;
	}
	</style>
	
	<script>
	function onCssStyle(){
		$('#test').addClass('animal');
	}
	function offCssStyle(){
		$('#test').removeClass('animal');
	}
	</script>
	
	<div id="test"  >
		<div class="neko">赤ネコ</div>
		<div class="inu">青犬</div>
	</div>
	<input type="button" value="スタイルON" onclick="onCssStyle()" />
	<input type="button" value="スタイルOFF" onclick="offCssStyle()" />
	

赤ネコ
青犬

「insertAfter」による要素移動を検証 | イベントは消えていまいか

insertAfterで要素移動しても登録したイベントはそのまま残っている!

検証

HTML

	<div id="a1" style="background-color:#ffcd42">
		黄色いバナナ
		<input type="button" id='btn_a1' value="A1ボタン" class="btn btn-primary btn-xs" />
	</div>
	<div id="a2" style="background-color:#dd5246">
		赤いリンゴ
		<input type="button" id='btn_a2' value="A2ボタン" class="btn btn-primary btn-xs" />
	</div>
	<input type="button" value="要素移動テスト" class="btn btn-success" onclick="test1()" />
	

JavaScript

	// 初期化
	$(() => {
	
		// ▼クリックイベントを組み込む
		$('#btn_a1').click(()=>{
			alert('黄色いバナナのボタン')
		});
		$('#btn_a2').click(()=>{
			alert('赤いリンゴのボタン')
		});
	});
	
	// クリックイベント
	function test1(){
		$('#a1').insertAfter('#a2');
	}
	


class属性の確認、追加、削除 | hasClass,addClass,removeClass.toggleClass

hasClass class属性の存在チェック。true or false。
removeClass class属性を除去する。複数指定していできる。
addClass class属性を追加する。複数指定できる。
toggleClass class属性の切替。存在するなら除去し、存在しないなら追加。

デモ

HTML

	<style>
		.red{
			color:red;
		}
		.big{
			font-size:2em;
		}
	</style>
	<div id="neko" class="long red big">
		ネコにエサをあげてください。
	</div>
	<input type="button" value="test1" onclick="test1()" class="btn btn-success" />
	<input type="button" value="test2" onclick="test2()" class="btn btn-success" />
	<input type="button" value="test3" onclick="test3()" class="btn btn-success" />
	<input type="button" value="test4" onclick="test4()" class="btn btn-success" />
	

JavaScript

	function test1(){
		
		var obj = jQuery('#neko');
		
		if(obj.hasClass('red')){
			obj.removeClass('red');
		}else{
			obj.addClass('red');
		}
	}
	
	function test2(){
		jQuery('#neko').toggleClass('big');
	}
	
	function test3(){
		
		var obj = jQuery('#neko');
		
		if(obj.hasClass('red')){
			obj.removeClass('red big');
		}else{
			obj.addClass('red big');
		}
	}
	
	function test4(){
		
		var obj = jQuery('.btn-success');
		
		if(obj.hasClass('btn-xs')){
			obj.removeClass('btn-xs');
		}else{
			obj.addClass('btn-xs');
		}
	}
	


指定文字列を一部でも含むすべての要素を選択する | :contains

「contains」は指定した文字列を一部でも含むならその要素を選択する。
親要素、先祖要素も選択範囲に含まれるので注意する。

JavaScript
	$("li:contains('ねこ')").css('color', 'red');

HTML

	<div>ねこ</div>
	<div><span>グローリーキャット</span></div>
	<ol>
		<li>catdog</li>
		<li>ねこ</li>
		<li>いぬ</li>
		<li><strong>大ねこ</strong>は逃げない</li>
	</ol>
	
Demo


1つでも条件式に一致するならtrueを返す

HTML

	<input type="text" value="example@example.com" />
	<input type="radio" name="test_radio" value="a" />A
	<input type="radio" name="test_radio" value="b" />B
	<input type="text" value="ゾウ" class="animal" />
	<input type="text" value="ゾウカブト" class="musi" />
	<input type="text" value="キリン" class="animal" />
	<input type="text" value="ダチョウ" class="tori" />
	

JavaScript

	$("input").one('click', (evt) =>{

		var inp = $(evt.currentTarget);
		if (inp.is(":radio")) {
			alert('ラジオ入力です。');
		}
		if (inp.is(":text")) {
			alert('テキストボックス入力です。');
		}
		if (inp.is(".animal, .tori")) {
			alert('脊椎動物です。');
		}
		if (inp.is(".musi")) {
			alert('虫です。');
		}
		
	});
	
Demo


カルーセル jQueryプラグインSlickの使い方

Demo 公式Demo

HTML


	<link href="slick/slick.css" rel="stylesheet">
	<link href="slick/slick-theme.css" rel="stylesheet" />

	<script src="/note_prg/js/jquery3.js"></script>	<!-- jquery-3.3.1.min.js -->
	<script src="slick/slick.min.js"></script>
	
	~略~
	
		<style>
		#test1 div{
			margin:10px;
			background-color:#191970;
			color:white;
		}
		.slick-prev:before,
		.slick-next:before {
			color: black;
		}
		
	</style>
	
	~ 略 ~
	
	<div id="test1">
		<div>
			イスラエルの王,ダビデの子,ソロモンの箴言。2 [これは,]人が知恵と懲らしめを知り,理解のことばをわきまえ,3 洞察力,義と裁きと廉直さを与える懲らしめを受け入れ,4 経験のない者たちに明敏さを,若者に知識と思考力を与えるためのものである。
		</div>
		<div>
			賢い者は聴いて,さらに多くの教訓を取り入れ,理解のある者は巧みな指導を得る人である。6 [これは,]箴言と難解なことわざ,賢い者たちの言葉とそのなぞを理解するためである。
		</div>
		<div>
			エホバへの恐れは知識の初めである。知恵と懲らしめをただの愚か者は軽んじた。
		</div>
		<div>
			我が子よ,あなたの父の懲らしめに聴き従え。あなたの母の律法を捨て去ってはならない。
		</div>
		<div>
			それはあなたの頭にとっての優美な花冠であり,あなたののどにとっての立派な首飾りだからである。
		</div>
		<div>
			我が子よ,罪人があなたをたぶらかそうとしても応じてはならない。
		</div>
		<div>
			「ぜひ我々と一緒に来い。血を[流すために]待ち伏せするのだ。罪のない者を正当な理由なしにひそかにねらうのだ。
		</div>
		<div>
			我々はシェオルのように,彼らを生きたまま,坑に下って行く者たちのようにそっくり呑み込もう。
		</div>
	</div>

	

JavaScript


	$(()=>{
		
		$('#test1').slick({ 
			arrows: true, // 左右のボタンを表示
			dots: true, // 下部分にドットを表示
			accessibility: true,
			infinite: true,
			slidesToShow: 3,
			slidesToScroll: 3
		});
		
		
	});
	

参考リンク

  1. 公式
  2. Qiita 【jQuery】スライダー系プラグイン slickの使用方法

Slickのリフレッシュ | 動的に内容が変化した時 | slick.js


		let elm = jQuery('...略 要素を取得
		elm.slick('removeSlide', null, null, true); // 一旦クリアする
		elm.html('<div>...略'); // 動的に内容を変更する
		elm.slick('refresh');
	

Demo


	$('#test1')[0].slick.refresh();
	

Slick | テキスト選択ができない状態を解除する

デフォルトで「user-select:none;」にされているためテキスト選択ができない状態になっている。

CSSスタイルシートに下記を記述することにより再びテキスト選択ができるようになる。

	.slick-slider{
		user-select:auto;
	}
	

スマホでjQuery.uiのタッチを有効にする方法 | jquery.ui.touch-punch.min.js

「jquery.ui.touch-punch.min.js」をjQuery.uiの後に読み込むだけで、スマホでもタッチ操作ができる。
要素をドラッグするUIなどに有効。


	<script src="jquery-ui.min.js"></script>
	<script src="jquery.ui.touch-punch.min.js"></script><!-- スマホでもuiでタッチできるようにする(ドラッグ可能にする) -->
	
Github