웹 기초 20강 - jQuery 필터2

  1. 자식필터

요소를 자식으로 갖는 부모의 구룹안에서 해당 자식을 찾는다
$(“td:first-child”) : td를자식으로 하는 tr 그룹에서 첫번째 자식

필터	설      명
:nth-child( index /even/odd/ equation)	
자식 중 index로 지정된 위치의 요소들과  일치하거나 , 짝수. 홀수 번째의 요소들과 일치하거나, 
방정식 값 위치의 요소들과 일치
:first-child	부모에 속한 자식 중 첫번째 자식요소와 일치 
:last-child		부모에 속한 자식 중 마지막 자식요소와 일치
:only-child	자신이 부모요소의 유일한 자식요소인 것과 일치 
  1. Form상태필터
    입력양식의 현재 상태에 따라 선택되어진다
필터	설      명
:enabled 	현재 사용 가능한 요소와 알치
:disabled	현재 사용 불가능한 요소와 일치
:checked	체크된 요소와 일치-checkedbox, radio  
:selected	선택된 요소들과 일치-select option 

Form상태4-1

  1. 기타 필터
    Visibility 필터 : 보임 상태에 따라 엘리먼트를 선택한다
필터	설      명

:hidden	1) display : none 인 것
2) type=hidden 인 것
3) width=0 height=0 인 것
4)부모요소가 hidden 인 것
:visible	display :none 이 아니 것 
 type =hidden 이 아니 것
width=0 height=0 이 아닌 것
부모요소가 hidden 이 아닌 것
Visibility =hidden opacity=0 인 것 

자식필터

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
<link rel="stylesheet" href="../css/mystyle.css" type="text/css">
<script src="../js/jquery-3.6.0.min.js"></script>

<script type="text/javascript">
$(function(){
	$('.box1 button').on('click',function(){ //문서가 로드된 후에 버튼을 클릭하면
		$('li:first-child').css('border','2px solid red');
		
		$('li:first').css('background','yellow');
			
	})
	
	$('.box2 button').on('click', function(){
		$('td:nth-child(1)').css('background','#5a5a5a');
		$('td:nth-child(2)').css('background','#bebebe');
		$('td:last-child').css('background','#dcdcdc');
		
		$('#tab2 tr:first-child td').css('background','black') //첫번째줄에 있는 모든 td
		.css('color','white')
		.css('font-size','1.5em')
		.css('font-weight','bold');

	//$('#tab3 tr:nth-child(2n)')	
	$('#tab3 tr:nth-child(even) td').css('background','lightgreen');	
	$('#tab3 tr:nth-child(odd) td').css('background','lightgray');
		
	})
})


</script>

<style>
table{
	border : 2px solid black;
	border-collapse: collapse;
}

td{
	width: 300px;
	height: 40px;
	text-align: center;
}
</style>
</head>
<body>

<div class="box box1">
 first-child : 부모의 그룹에서 첫번째 자식을 선택한다<br>
 last-child : 부모의 그룹에서 마지막 자식을 선택한다<br>
 $('li:first-child') : ol 그룹에서 각각 첫번째 자식을 선택<br>
 $('li:first') : 모든 li에서 첫번째 li를 선택<br>
 <br>
  <button type="button">확인</button>
  <div id="result1">
  	<h2>여자에게 인기있는 남자들</h2>
  	<ol>
  		<li>능력있는 남자</li>
  		<li>잘생긴 남자</li>
  		<li>돈많은 남자</li>
  		<li>프로그래머</li>
  	</ol>
  	
  	<h2>남자에게 인기있는 여자들</h2>
  	<ol>
  		<li>능력있는 여자</li>
  		<li>예쁜 남자</li>
  		<li>귀여운 남자</li>
  		<li>섹시한 남자</li>
  	</ol>
  </div>
 </div> 
 
 <div class="box box2">
 td:nth-child(1), td:first-child<br>
 td:nth-child(2)<br>
 td:nth-child(3), td:last-child<br>
 <br>
  <button type="button">확인</button>
  <div id="result2">
  	<table border="1">
  		<tr>
  			<td>이름</td>
  			<td>주소</td>
  			<td>전화번호</td>
  		</tr>
  		<tr>
  			<td>홍길동</td>
  			<td>대전</td>
  			<td>010-222-333</td>
  		</tr>
  		<tr>
  			<td>진달래</td>
  			<td>서울</td>
  			<td>010-444-555</td>
  		</tr>
  		<tr>
  			<td>개나리</td>
  			<td>부산</td>
  			<td>010-666-777</td>
  		</tr>
  		<tr>
  			<td>무궁화</td>
  			<td>대구</td>
  			<td>010-777-888</td>
  		</tr>
  	</table>
  	
  	<br><br>
  	<table id="tab2" border="1">
  		<tr>
  			<td>이름</td>
  			<td>주소</td>
  			<td>전화번호</td>
  		</tr>
  		<tr>
  			<td>홍길동</td>
  			<td>대전</td>
  			<td>010-222-333</td>
  		</tr>
  		<tr>
  			<td>진달래</td>
  			<td>서울</td>
  			<td>010-444-555</td>
  		</tr>
  		<tr>
  			<td>개나리</td>
  			<td>부산</td>
  			<td>010-666-777</td>
  		</tr>
  		<tr>
  			<td>무궁화</td>
  			<td>대구</td>
  			<td>010-777-888</td>
  		</tr>
  	</table>
  	<br><br>
  	<table id="tab3" border="1">
  		<tr>
  			<td>이름</td>
  			<td>주소</td>
  			<td>전화번호</td>
  		</tr>
  		<tr>
  			<td>홍길동</td>
  			<td>대전</td>
  			<td>010-222-333</td>
  		</tr>
  		<tr>
  			<td>진달래</td>
  			<td>서울</td>
  			<td>010-444-555</td>
  		</tr>
  		<tr>
  			<td>개나리</td>
  			<td>부산</td>
  			<td>010-666-777</td>
  		</tr>
  		<tr>
  			<td>무궁화</td>
  			<td>대구</td>
  			<td>010-777-888</td>
  		</tr>
  		<tr>
  			<td>무궁화</td>
  			<td>대구</td>
  			<td>010-777-888</td>
  		</tr>
  		<tr>
  			<td>무궁화</td>
  			<td>대구</td>
  			<td>010-777-888</td>
  		</tr>
  	</table>
  	
  </div>
 </div> 
 
 
</body>
</html>

상태필터_checked

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
<link rel="stylesheet" href="../css/mystyle.css" type="text/css">
<script src="../js/jquery-3.6.0.min.js"></script>
<script type="text/javascript">
function proc1(){
	//사용가능과 불가능을 구분한다
	
	$('form *:enabled').css('border','2px dotted green');
	
	$('form *:disabled').css('border', '3px solid red');
}

$(function(){
	//$('#result2 input[type=button];').on('click',function(){}) //속성선택
	$('#result2 :button').on('click',function(){//input[type=button]과 같음 - 폼양식선택
		
		//$('input[type=checkbox]').each(function(i){})
		//$(':checkbox').each(function(i){})
		//$.each($('input[type=checkbox]'), function(i){})
		
		str = "당신의 취미는 <br>";
		$.each($(':checkbox:checked'), function(i){ //4개 중 1개 사용(다 같은 사용)
			//this.value - dom객체 사용시	
			str += $(this).val() + " &nbsp;&nbsp;&nbsp;"
		})
		
		$('#result2 div').html(str);
		
	}) 
	
})
</script>
</head>
<body>

<div class="box">
 상태필터<br>
 전송버튼 클릭시 체크된 항목의 값을 script에서 처리한다 -value - val()<br>
 innerHTML - html()<br>
 textContent - text()<br>
 value - val()<br>
 <br>
 enabled : 사용가능 <br>
 disabled : 사용불가능<br>
 selected : select option <br>
 checked : checked, radio<br>
 <br>
  <button type="button" onclick="proc1()">확인</button>
  <div id="result1">
  	 <form> 
		<input type="text" name="id" ><br>
		<input type="password" name="pass"  ><br>
		
		<select name="disSelect">
		      <option>Option1</option>
		      <option>Option2</option>
		      <option selected="selected">Option3</option>
		      <option>Option4</option>
		</select>
		<br><br>
		<textarea name="enTextarea" rows=10 cols=20 >text</textarea><br>
		<input type="button" value="확인" onclick="alert('hello~~')" disabled="disabled"><br>
	</form>
  
  </div>
 </div> 
 
<div class="box">
 상태필터<br>
  <div id="result2">
 	<form>
		취 미 :
		 <input type="checkbox" name="hobby" value="여행" checked >여행
		<input type="checkbox" name="hobby" value="장기">장기
		<input type="checkbox" name="hobby" value="바둑">바둑
		<input type="checkbox" name="hobby" value="독서" >독서
		<input type="checkbox" name="hobby" value="낚시">낚시<br><br>
		<input type="button" value="전송">
	</form>
	
	<div></div>
 
 <br>
  </div>
 </div> 
 
</body>
</html>

상태필터_selected

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
<link rel="stylesheet" href="../css/mystyle.css" type="text/css">
<script src="../js/jquery-3.6.0.min.js"></script>

<script type="text/javascript">
$(function(){
	//str = "";
	$('select').on('change', function(){
		str = "";
		
		$.each($('option:selected',this), function(){
			//$('select option')//select가 여러개일 때 사용불가
			str += $(this).val() + "<br>";
		}) 
	
		$('#result1 div').html(str);
		
			
	})
})
</script>
<style>
select{
	width: 200px;
	height: auto;
	font-size: 1.3em;
}
</style>
</head>
<body>

<div class="box">
 select에 change이벤트를 설정<br>
 option의 선택한 항목의 값을 script에서 처리 - value - val()
 $.each($('select option:selected'),function(){})
 $.each($('option:selected', this), function(){})
 <br>
  <button type="button" onclick="proc1()">확인</button>
  <div id="result1">
  	<form>
		봄소식 : <br>
		<select name="spring" id="spring" multiple="multiple" size="6">
			<option>개나리</option>
			<option selected="selected">진달래</option>
			<option>민들레</option>
			<option>벚꽃</option>
			<option selected="selected">목련</option>
			<option>철쭉</option>
		</select>
	</form>
	<div></div>
  </div>
 </div> 
</body>
</html>

Visibility필터

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
<link rel="stylesheet" href="../css/mystyle.css" type="text/css">
<script src="../js/jquery-3.6.0.min.js"></script>

<script type="text/javascript">
$(function(){
	$('#visible').on('click', function(){
		str = "";
		
		$.each($('p:visible'),function(i){//보이는 p태그를 가지고 반복한다
			str += $(this).text() + "<br>";//this는 p:visible의 i번째 요소
		})
		
		$('#result1 div:eq(0)').html(str);
		//$('p:visible').each(function(i){})
	})
	
	$('#hidden').on('click', function(){
		str = ""
		
		$('p:hidden').each(function(i){
			str += $(this).text() + "<br>";	
		})
		
		$('#result1 div:eq(1)').html(str);
	})
})


</script>
</head>
<body>

<div class="box">
 <br>
 
 <br>
  <button type="button" id="visible">visible필터</button>
  <button type="button" id="hidden">hidden필터</button>
  <div id="result1">
  	<p> 보이는 문단</p>
 	<p style="visibility:hidden;">숨겨진 문단</p>
	<p style="display:none;"> 자리를 차지 하지 못한 문단 </p>
 	<p style="opacity:0;"> 투명한 문단</p>
 	
 	<div></div>
 	<div></div>
  </div>
 </div> 
</body>
</html>

좋은 웹페이지 즐겨찾기