jQuery: 데이터 속성으로 요소 찾기

Habdul Hazeez 2023년6월21일
  1. jQuery .find() 메서드를 사용하여 데이터 속성 찾기
  2. CSS 속성 선택기를 사용하여 데이터 속성 찾기
  3. .filter() 메소드를 사용하여 데이터 속성 찾기
jQuery: 데이터 속성으로 요소 찾기

jQuery를 사용하여 데이터 속성이 있는 요소를 검색하려면 .find() 메서드, .filter() 메서드 또는 CSS 속성 선택기를 사용할 수 있습니다. 이 문서에서는 실용적인 코드 예제를 사용하여 모두 사용하는 방법을 알려줍니다.

jQuery .find() 메서드를 사용하여 데이터 속성 찾기

jQuery에서 .find() 메서드를 사용하면 CSS 선택기를 사용하여 웹 페이지에서 요소를 검색할 수 있습니다. 여기에서 올바른 CSS 선택기를 작성하면 데이터 속성을 찾는 데 사용할 수 있습니다.

여기에서 CSS 선택기와 일치하는 요소로 원하는 작업을 수행할 수 있습니다. 아래 예에서는 data-name=Edison을 검색하고 글꼴 크기를 3em으로 변경했습니다.

<!DOCTYPE html>
<html lang="en">
<head>
	<meta charset="utf-8">
	<title>01-jQuery-find-data-attr</title>
	<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.6.1/jquery.min.js" integrity="sha512-aVKKRRi/Q/YV+4mjoKBsE4x3H+BkegoM/em46NNlCqNTmUYADjBbeNefNxYV7giUp0VxICtqdrbqU7iVaeZNXA==" crossorigin="anonymous" referrerpolicy="no-referrer"></script>
</head>
<body>
	<main>
		<ul>
			<li data-name="Edison">Thomas Edison</li>
			<li data-name="Einstein">Albert Einstein</li>
			<li data-name="Rutherford">Ernest Rutherford</li>
		</ul>
	</main>
	<script>
		$(document).ready(function() {
			$("ul").find("[data-name='Edison']").css('font-size', '3em');
		});
    </script>
</body>
</html>

출력:

jQuery 찾기 방법으로 데이터 속성이 있는 요소 찾기

CSS 속성 선택기를 사용하여 데이터 속성 찾기

CSS 속성 선택기를 사용하여 데이터 속성을 찾을 수 있습니다. 그러나 HTML 마크업에 따라 이를 수행하는 두 가지 방법이 있습니다.

아래 첫 번째 예에서 목록 항목에는 데이터 속성이 있습니다. 따라서 태그 선택기와 CSS 속성 선택기로 구성된 CSS 자손 선택기를 사용할 수 있습니다.

결과는 필수 요소의 정확한 일치이며 나중에 CSS 스타일을 적용할 수 있습니다.

<!DOCTYPE html>
<html lang="en">
<head>
	<meta charset="utf-8">
	<title>02-jQuery-find-data-attr</title>
	<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.6.1/jquery.min.js" integrity="sha512-aVKKRRi/Q/YV+4mjoKBsE4x3H+BkegoM/em46NNlCqNTmUYADjBbeNefNxYV7giUp0VxICtqdrbqU7iVaeZNXA==" crossorigin="anonymous" referrerpolicy="no-referrer"></script>
	<style>
		body {
			font-family: "Trebuchet MS", Verdana, sans-serif;
			font-size: 1.2em;
		}
	</style>
</head>
<body>
	<main>
		<ul>
			<li data-iso="MRT">Mauritania</li>
			<li data-iso="LUX">Luxembourg</li>
			<li data-iso="HRV">Croatia</li>
		</ul>
	</main>
	<script>
		$(document).ready(function() {
			$("ul [data-iso='MRT'").css('color', 'magenta');
		});
    </script>
</body>
</html>

출력:

CSS 속성 선택기를 사용하여 속성별로 데이터 찾기

아래의 두 번째 예에는 다른 HTML 및 jQuery 코드가 있습니다. 첫째, 상위 <ul> 요소는 HTML에서 데이터 속성을 가집니다.

이는 마지막 예제의 이전 선택기가 작동하지 않음을 의미합니다. 이를 해결하기 위해 <ul> 요소와 CSS 속성 선택자 사이의 공백을 제거할 수 있습니다.

<!DOCTYPE html>
<html lang="en">
<head>
	<meta charset="utf-8">
	<title>02_01-jQuery-find-data-attr</title>
	<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.6.1/jquery.min.js" integrity="sha512-aVKKRRi/Q/YV+4mjoKBsE4x3H+BkegoM/em46NNlCqNTmUYADjBbeNefNxYV7giUp0VxICtqdrbqU7iVaeZNXA==" crossorigin="anonymous" referrerpolicy="no-referrer"></script>
</head>
<body>
	<main>
		<ul data-viruses="computer-viruses">
			<li>Mydoom</li>
			<li>ILOVEYOU</li>
			<li>WannaCry</li>
		</ul>
	</main>
	<script>
		$(document).ready(function() {
			$("ul[data-viruses='computer-viruses']").css('font-style', 'italic');
		});
    </script>
</body>
</html>

출력:

CSS 속성을 사용하여 속성별로 데이터 찾기

.filter() 메소드를 사용하여 데이터 속성 찾기

.filter() 메서드는 CSS 선택기를 사용하여 HTML 요소를 일치시킵니다. 이를 통해 요소의 CSS 선택기를 전달하고 결과로 작업할 수 있습니다.

이것이 아래 코드 예제에서 수행한 작업입니다. 이전 예제와 달리 jQuery .addClass() 메서드를 사용하여 CSS 클래스를 추가합니다.

<!DOCTYPE html>
<html lang="en">
<head>
	<meta charset="utf-8">
	<title>03-jQuery-find-data-attr</title>
	<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.6.1/jquery.min.js" integrity="sha512-aVKKRRi/Q/YV+4mjoKBsE4x3H+BkegoM/em46NNlCqNTmUYADjBbeNefNxYV7giUp0VxICtqdrbqU7iVaeZNXA==" crossorigin="anonymous" referrerpolicy="no-referrer"></script>
	<style>
		.style-chef {
			background-color: #1a1a1a;
			color: #ffffff;
			padding: 0.2em;
			width: 40%;
		}
	</style>
</head>
<body>
	<main>
		<ul>
			<li data-esolang="Befunge">Befunge</li>
			<li data-esolang="Chef">Chef</li>
			<li data-esolang="Whitespace">Whitespace</li>
		</ul>
	</main>
	<script>
		$(document).ready(function() {
			$("li").filter('[data-esolang="Chef"]').addClass('style-chef');
		});
    </script>
</body>
</html>

출력:

jQuery 필터 방법을 사용하여 속성별로 데이터 찾기

Habdul Hazeez avatar Habdul Hazeez avatar

Habdul Hazeez is a technical writer with amazing research skills. He can connect the dots, and make sense of data that are scattered across different media.

LinkedIn