jQuery: seleccionar por atributo de datos

Habdul Hazeez 15 febrero 2024
  1. Seleccionar atributos de datos personalizados usando etiquetas HTML
  2. Seleccionar atributos de datos personalizados mediante selectores de jQuery
jQuery: seleccionar por atributo de datos

Este artículo enseña dos métodos para seleccionar atributos de datos HTML5 personalizados usando jQuery. El primer método seleccionará los atributos de datos utilizando las etiquetas HTML que los rodean.

Para el segundo método, utilizará los selectores de jQuery definidos en la documentación de la API de jQuery.

Seleccionar atributos de datos personalizados usando etiquetas HTML

Usando sus etiquetas HTML circundantes como un proxy, puede seleccionar atributos de datos personalizados. Puede utilizar un selector de atributos CSS típico para seleccionar los atributos de datos.

A continuación, la parte HTML del código contiene una lista desordenada HTML marcada con la etiqueta <ul>. Esta lista tiene un atributo grupo de datos y un valor; usará el primero y el último en el código jQuery.

Además, los elementos de la lista tienen un atributo y valores de empresa de datos. Puede seleccionar estos atributos utilizando las etiquetas HTML; eso es lo que hemos hecho en el siguiente código.

<!DOCTYPE html>
<html lang="en">
<head>
	<title>01-jQuery-select-data-by-attribute</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>
		ul {
			font: 1.2em/1.618 "Trebuchet MS", Verdana, Helvetica, sans-serif;
		}
	</style>
</head>
<body>
	<div class="main">
		<ul data-group="FAANG">
			<li data-company="Facebook">Facebook</li>
			<li data-company="Apple">Apple</li>
			<li data-company="Amazon">Amazon</li>
			<li data-company="Netflix">Netflix</li>
			<li data-company="Google">Google</li>
		</ul>
	</div>
	<script>
		// Select the data-company attribute that belongs
		// to Google, and leave out the rest.
		$("ul[data-group='FAANG'] li[data-company='Google']").css({
			'color': '#db4437',
			'font-weight': 'bold'
		});

		// Select all data-company attributes except that
		// of Google. The li:not() selector makes this
		// possible.
		$("ul[data-group='FAANG'] li:not([data-company='Google'])").css('color', '#1560bd');
	</script>
</body>
</html>

Producción:

jQuery Seleccionar atributo de datos usando la etiqueta HTML como proxy

Seleccionar atributos de datos personalizados mediante selectores de jQuery

La biblioteca jQuery tiene selectores que puede usar para seleccionar atributos de datos HTML5 personalizados. Estos selectores funcionan como coincidencia de patrones usando expresiones regulares.

Como resultado, puede seleccionar atributos de datos que tengan características relacionadas. A continuación, le mostramos selectores que coinciden con diferentes atributos de datos.

<!DOCTYPE html>
<html lang="en">
<head>
    <title>02-jQuery-select-data-by-attribute</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>
        ul {
            font: 1.2em/1.618 "Trebuchet MS", Verdana, Helvetica, sans-serif;
        }
    </style>
</head>
<body>
    <div class="main">
        <ul data-group="FAANG">
            <li data-company="Facebook">Facebook</li>
            <li data-company="Apple">Apple</li>
            <li data-company="Amazon">Amazon</li>
            <li data-company="Netflix">Netflix</li>
            <li data-company="Google">Google</li>
        </ul>
    </div>
    <script>
        //stored selector
        let parent_list = $('ul[data-group="FAANG"]');

        // Select data-company that starts with "A"
        let company_that_start_with_letter_a = $('[data-company^="A"]', parent_list).css({
            'color': '#ff9900',
            'font-weight': 'bold'
        });

        // Select data-company that contains "Face"
        let company_that_contains_face = $('[data-company*="Face"]', parent_list).css({
            'color': '#4267b2',
            'font-style': 'italic'
        });

        // Select data-company that ends with "flix"
        let company_that_ends_with_flix = $('[data-company$="flix"]', parent_list).css({
            'color': '#e50914',
            'text-decoration': 'underline'
        });
    </script>
</body>
</html>

Producción:

jQuery Seleccionar atributo de datos usando selectores 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

Artículo relacionado - jQuery Attribute