Cara menggunakan SYBLINGS pada JavaScript

Artikel kali ini ditulis dengan tujuan agar bisa menjawab pertanyaan sahabat sekalian yang saat ini sedang belajar JQuery namun kemungkinan besar belum paham mengenai konsep dari Children Parent dan Siblings pada JQuery. Meski sebetulnya jika sudah memahami konsep children parent dan siblings pada css tidak akan ada problem. Namun demi kebaikan bersama saya akan bahas secara tuntas permasalahan children, parent, dan siblings pada belajar jquery kali ini. Diharapkan mudah-mudahan menjadi solusi ketika dalam pembelajaran Anda.

Untuk menunjang pembelajaran saya menyediakan script html sederhana seperti ini, yang mana didalamnya sudah saya sisipkan pemanggilan script jquerynya. Sehingga nanti bisa langsung praktik saja ...

Cara menggunakan SYBLINGS pada JavaScript
Tutorial : "Jurus Terlarang Web Bot Development"
Studi kasus membuat 5 jenis Web Bot. 1. Bot kirim pesan masal dan autoposting di Instagram, 2. bot pencari pasukan reseller di Tokopedia, 3. pencari buyer di Bukalapak, 4. Mengumpulkan No HP di OLX, 5. Bot Kirim Pesan Masal Whatsapp . Lengkapnya kunjungi store.ilmuwebsite.com)

Kita bahas script yang pertama terlebih dahulu

<!DOCTYPE html>
<html lang="en">
	<head>
		<meta http-equiv="content-type" content="text/html; charset=UTF-8">
		<script src="https://code.jquery.com/jquery-3.1.1.min.js"></script>		
	</head>
	<body>
	
		<ul id="top-menu">
			<li><a href="#">Home</a></li>
			<li><a href="#">Service</a></li>
			<li><a href="#">Contact</a></li>
			<li><a href="#">Blog</a></li>
			<li><a href="#">Product</a></li>
		</ul>
	 
		<script type="text/javascript">
			$(document).ready(function(){
				$('a').click(function(e){
					e.preventDefault();
					$(this).css('color','yellow');
				});		
			});		
		</script>
	</body>
</html>

Saya sudah menyediakan menu, dengan 5 buah link di dalamnya. Dibuat menggunakan unordered list. Saya berikan sebuah event click, ketika di klik maka link akan berubah menjadi warna kuning. Perlu diketahui bahwa e.preventDefault() ada sebuah function yang mencegah fungsi default yakni menuju ke suatu link ketika anchor / a di klik. e.preventDefault() mencegah sifat default dari link. Yakni menuju ke suatu link yang terisi di dalam href.

Kita akan lebih menukik lagi pembahasannya

Parent

Parent, sesuai dengan artinya adalah orang tua. Sehingga apabila melihat script html di atas, yang menjadi parent dari <a href="#">Service</a> adalah <li></li> yang mewadahinya. Dan yang menjadi parent dari <li></li> adalah <ul id="top-menu"></ul>

Lalu bagaimana JQuery bisa mengakses orang tuanya, untuk memberikan suatu fungsi. Misal ketika kita mengklik link maka orang tuanya yakni si <li> akan kita berikan border dashed blue

Scriptnya adalah seperti ini ...

<!DOCTYPE html>
<html lang="en">
	<head>
		<meta http-equiv="content-type" content="text/html; charset=UTF-8">
		<script src="https://code.jquery.com/jquery-3.1.1.min.js"></script>		
	</head>
	<body>
	
		<ul id="top-menu">
			<li><a href="#">Home</a></li>
			<li><a href="#">Service</a></li>
			<li><a href="#">Contact</a></li>
			<li><a href="#">Blog</a></li>
			<li><a href="#">Product</a></li>
		</ul>
	 
		<script type="text/javascript">
			$(document).ready(function(){
				$('a').click(function(e){
					e.preventDefault();
					$(this).parent('li').css('border','3px dashed blue');
				});		
			});		
		</script>
	</body>
</html>

$(this)ini mengacu kepada apa yang diklik dalam hal ini adalah linknya $('a').click(function(e){

Selain mengakses orang tua / parent diatasnya, Anda pun bisa mengakses orang tua dari orang tua. Dengan menggunakan parents, ada s di belakangnya. Scriptnya adalah seperti ini

<!DOCTYPE html>
<html lang="en">
	<head>
		<meta http-equiv="content-type" content="text/html; charset=UTF-8">
		<script src="https://code.jquery.com/jquery-3.1.1.min.js"></script>		
	</head>
	<body>
	
		<ul id="top-menu">
			<li><a href="#">Home</a></li>
			<li><a href="#">Service</a></li>
			<li><a href="#">Contact</a></li>
			<li><a href="#">Blog</a></li>
			<li><a href="#">Product</a></li>
		</ul>
	 
		<script type="text/javascript">
			$(document).ready(function(){
				$('a').click(function(e){
					e.preventDefault();
					$(this).parents('ul').css('background','yellow');
				});		
			});		
		</script>
	</body>
</html>

Siblings

Siblings, sesuai juga dengan artinya yakni saudara. JQuery menyediakan fasilitas ini agar seorang web designer bisa memberikan suatu function ataupun value dari elemen saudaranya yang di berikan event. Lebih jelasnya misalnya begini. Apa bila saya mengklik menu yang sudah dibuat sebelumnya, maka siblings-siblings yang lain pun ikut berubah warna bordernya misalnya.
Scriptnya adalah seperti ini ...

<!DOCTYPE html>
<html lang="en">
	<head>
		<meta http-equiv="content-type" content="text/html; charset=UTF-8">
		<script src="https://code.jquery.com/jquery-3.1.1.min.js"></script>		
	</head>
	<body>
	
		<ul id="top-menu">
			<li><a href="#">Home</a></li>
			<li><a href="#">Service</a></li>
			<li><a href="#">Contact</a></li>
			<li><a href="#">Blog</a></li>
			<li><a href="#">Product</a></li>
		</ul>
	 
		<script type="text/javascript">
			$(document).ready(function(){
				$('a').click(function(e){
					e.preventDefault();
					$(this).parent('li').siblings().css('border','2px solid blue');
				});		
			});		
		</script>
	</body>
</html>

Nah misalkan kita ingin apabila di klik menu nya berubah jadi border blue, sedangkan jika di klik menu yang lainnya maka menu yang sebelumnya menjadi normal.

Pertama kita siapkan terlebih dahulu script ketika link di klik akan menghasilkan border blue pada li nya. Sebelumnya disiapkan dulu style css nya seperti ini ...

Letakkan sebelum tag head berakhir

		<style type="text/css">
			.normal{
				border: none;
			}
			
			.borderblue{
				border:2px solid blue;
			}
		</style>

Kemudian javascriptnya seperti ini

<!DOCTYPE html>
<html lang="en">
	<head>
		<meta http-equiv="content-type" content="text/html; charset=UTF-8">
		<script src="https://code.jquery.com/jquery-3.1.1.min.js"></script>		
		<style type="text/css">
			.normal{
				border: none;
			}
			
			.borderblue{
				border:2px solid blue;
			}
		</style>
	</head>
	<body>
	
		<ul id="top-menu">
			<li><a href="#">Home</a></li>
			<li><a href="#">Service</a></li>
			<li><a href="#">Contact</a></li>
			<li><a href="#">Blog</a></li>
			<li><a href="#">Product</a></li>
		</ul>
	 
		<script type="text/javascript">
			$(document).ready(function(){
				$('a').click(function(e){
					e.preventDefault();
					$(this).parent('li').addClass('borderblue');
				});		
			});		
		</script>
	</body>
</html>

Setelah itu ketika link di klik maka siblings yang lainnya akan menjadi normal

<!DOCTYPE html>
<html lang="en">
	<head>
		<meta http-equiv="content-type" content="text/html; charset=UTF-8">
		<script src="https://code.jquery.com/jquery-3.1.1.min.js"></script>		
		<style type="text/css">
			.normal{
				border: none;
			}
			
			.borderblue{
				border:2px solid blue;
			}
		</style>
	</head>
	<body>
	
		<ul id="top-menu">
			<li><a href="#">Home</a></li>
			<li><a href="#">Service</a></li>
			<li><a href="#">Contact</a></li>
			<li><a href="#">Blog</a></li>
			<li><a href="#">Product</a></li>
		</ul>
	 
		<script type="text/javascript">
			$(document).ready(function(){
				$('a').click(function(e){
					e.preventDefault();
					$(this).parent('li').addClass('borderblue').siblings().removeClass('borderblue');
				});		
			});		
		</script>
	</body>
</html>

Ya, kurang lebih seperti itu, untuk children bisa Anda uji coba sendiri. Semoga belajar jquery kali ini bermanfaat.

Terima kasih.

Loka Dwiartara
Ilmuwebsite.com