¿Cómo seleccionar una identificación que contiene metacaracteres en HTML?

Introducción: En la programación, muchas veces hemos visto Metacharacter, antes de pasar al tema principal, tengamos una breve información sobre Metacharacter. Estos son los caracteres especiales disponibles en la programación que tienen un significado especial. Hay varios metacaracteres, algunos de ellos se enumeran a continuación:

Ejemplo:

 /  $  [  ]  {  }  |  *

Enfoque: supongamos que tenemos que cambiar el color del texto que está debajo de la etiqueta h1 . El enfoque muy básico para lograr esto es darle a la etiqueta h1 una ID o clase y luego, al usar jQuery, podemos usar esa ID o clase para manipular el texto de ese elemento. Pero en la programación, hay algunas convenciones de nomenclatura estándar para los id y las clases, para los id y las clases siempre debemos usar minúsculas y si tenemos que dar un nombre de varias palabras, podemos separar esa palabra usando «-«. Pero, ¿qué pasa si una identificación se nombra con caracteres especiales? En este caso, si tratamos de manipular ese elemento usando esa identificación o clase, entonces tendremos un error. Entonces, ¿cómo deshacerse de ese error y hacer que funcione?

En jQuery, hay un método llamado escapeSelector() este método manejará todos los caracteres especiales en el nombre de la identificación. Así que ahora vamos a utilizar este método.

Sintaxis:

 $.escapeSelector( selector ) 

Ejemplo 1: En este ejemplo, le hemos dado a la etiqueta h1 con el atributo id ese nombre que contiene algunos caracteres especiales, que no se incluyen en las convenciones de nomenclatura estándar. Para superar ese problema, usaremos el método escapeSelector() y, con la ayuda de ese método, accederemos a la etiqueta h1 y manipularemos su contenido en el siguiente ejemplo.

index.html

<!DOCTYPE html>
<html lang="en">
  
<head>
    <script src=
"https://code.jquery.com/jquery-3.6.0.min.js"
        integrity=
"sha256-/xUj+3OJU5yExlq6GSYGSHk7tPXikynS7ogEvDej/m4="
        crossorigin="anonymous">
    </script>
</head>
  
<body>
    <!-- id of h1 tag contains meta 
        characters ( [ ] ); -->
    <h1 id="[metachar]">GeeksforGeeks</h1>
  
    <button>Click</button>
      
    <script>
        $("button").click(function () {
  
            // escaping the meta characters
            // for id's only
            $("#" + $.escapeSelector("[metachar]"))
                .css("color", "Green");
        });
    </script>
</body>
  
</html>

Producción:

Explicación: le hemos dado a una identificación un nombre que contiene un metacarácter y luego estamos cambiando el color del texto de la etiqueta h1 usando su identificación. Tenga en cuenta que si no usamos el método jQuery.escapeSelector(), tendríamos un mensaje de error. En el lado derecho, en la consola podemos ver que no hay ningún error, así es como podemos deshacernos de este simple problema.

Ejemplo 2: En este ejemplo, usaremos el mismo método escapeSelector(), pero esta vez usaremos otro símbolo especial «#» en el nombre de identificación de la etiqueta h1 y manipularemos su contenido. Esta vez cambiaremos el tamaño de fuente del texto de la etiqueta h1.

index.html

<!DOCTYPE html>
<html lang="en">
  
<head>
    <script src=
"https://code.jquery.com/jquery-3.6.0.min.js"
        integrity=
"sha256-/xUj+3OJU5yExlq6GSYGSHk7tPXikynS7ogEvDej/m4="
        crossorigin="anonymous">
    </script>
</head>
  
<body>
    <!-- id of h1 tag contains meta 
        character ( # ); -->
    <h1 id="#text">GeeksforGeeks</h1>
  
    <button>Click</button>
      
    <script>
        $("button").click(function () {
  
            // Escaping the meta character
            // # for id of h1 tag
            $("#" + $.escapeSelector("#text"))
                .css("font-size", "50px");
        });
    </script>
</body>
  
</html>

Producción:

Producción

Publicación traducida automáticamente

Artículo escrito por iamgaurav y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *