¿Cómo agregar target=”_blank” a un enlace usando jQuery?

Dada una etiqueta de anclaje dentro de un elemento DIV y la tarea es agregar target=”_blank” al elemento de anclaje. Hay dos métodos discutidos a continuación para resolver este problema:

Enfoque 1:

  • Seleccione el elemento DIV exterior del elemento ancla.
  • Utilice el método .attr() para establecer la propiedad de destino en «_blank» del elemento ancla.

Cómo verificar todos los atributos de cualquier elemento en una string:

  • Primero seleccione el elemento.
  • Utilice el método .attributes para obtener acceso a todos los atributos del elemento.
  • Utilice la concatenación de strings para agregar cada atributo y su valor a la string.

Ejemplo: Este ejemplo implementa el enfoque anterior.

html

<!DOCTYPE HTML> 
<html> 
  
<head> 
    <title> 
        How to add target="_blank"
        to a link using jQuery ?
    </title>
      
    <script src=
"https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js">
    </script>
</head> 
  
<body style = "text-align:center;"> 
      
    <h1 style = "color: green"> 
        GeeksForGeeks 
    </h1>
      
    <p id = "GFG_UP" style =
        "font-size: 20px; font-weight: bold;">
    </p>
      
    <div id="outer">
        <a id = "a" href="https://www.geeksforgeeks.org">
            THIS IS LINK
        </a>
    </div>
    <br>
      
    <button onclick = "gfg_Run()"> 
        Click Here
    </button>
      
    <p id = "GFG_DOWN" style = "color:green;
        font-size: 26px; font-weight: bold;">
    </p>
      
    <script>
        var el_up = document.getElementById("GFG_UP");
        var el_down = document.getElementById("GFG_DOWN");
          
        el_up.innerHTML = 'Click on the button to add'
                    + ' target="_blank" to the link.';
      
        // This function only returns all attribute
        // properties of DOM element as a string and
        // has nothing to do with the target property
        function getAttr() {
            var elmt = document.getElementById("a");
      
            // Adding the every attribute to the string.
            for (var i = 0, attr = elmt.attributes,
            n = attr.length, str = ""; i < n; i++) {
                str = str + attr[i].nodeName + "='"
                    + attr[i].nodeValue + "'<br>";
            }
              
            // Returns the string of attributes
            return str;
        }
          
        el_down.innerHTML = getAttr();
          
        function gfg_Run() {
              
            // Set the target property to '_blank'.
            $('#outer a').attr('target', '_blank');
            el_down.innerHTML = getAttr();
        } 
    </script> 
</body> 
  
</html>

Producción:

  • Antes de hacer clic en el botón:
  • Después de hacer clic en el botón:

Enfoque 2:

  • Primero seleccione el DIV externo y luego el elemento ancla interno con la ayuda de los métodos document.getElementByID() y document.getElementsByTagName() respectivamente.
  • Utilice el método .setAttribute(‘target’, ‘_blank’) para establecer el atributo de destino.

Cómo ver todos los atributos de cualquier elemento como una string:

  • primero seleccione el elemento.
  • Utilice el método .attributes para obtener acceso a todos los atributos del elemento.
  • Utilice la concatenación de strings para agregar cada atributo y su valor a la string.

Ejemplo: Este ejemplo implementa el enfoque anterior.

html

<!DOCTYPE HTML> 
<html> 
  
<head> 
    <title> 
        How to add target="_blank"
        to a link using jQuery ?
    </title>
</head> 
  
<body style = "text-align:center;"> 
      
    <h1 style = "color: green"> 
        GeeksForGeeks 
    </h1>
      
    <p id = "GFG_UP" style = 
        "font-size: 20px; font-weight: bold;">
    </p>
      
    <div id="outer">
        <a id = "a" href="https://www.geeksforgeeks.org">
            THIS IS LINK
        </a>
    </div>
    <br>
      
    <button onclick = "gfg_Run()"> 
        Click Here
    </button>
      
    <p id = "GFG_DOWN" style = "color:green;
        font-size: 26px; font-weight: bold;">
    </p>
      
    <script>
        var el_up = document.getElementById("GFG_UP");
        var el_down = document.getElementById("GFG_DOWN");
          
        el_up.innerHTML = 'Click on the button to add'
                    + ' target="_blank" to the link.';
          
        // This function returns all attribute properties
        // of DOM element as a string and has nothing
        // to do with the target property
        function getAttr() {
            var elmt = document.getElementById("a");
              
            for (var i=0, attr=elmt.attributes,
            n=attr.length, str = ""; i<n; i++){
                str = str + attr[i].nodeName + "='"
                    + attr[i].nodeValue + "'<br>";
            }
            return str;
        }
        el_down.innerHTML = getAttr();
          
        function gfg_Run() {
              
            // Getting the anchor element inside the outer DIV.
            var el = document.getElementById('outer')
                    .getElementsByTagName('a');
              
            for (var i = 0; i < el.length; i++){
                  
                // Set the target property of every anchor
                // element inside the outer DIV
                el[i].setAttribute('target', '_blank');
            }
            el_down.innerHTML = getAttr();
        } 
    </script> 
</body> 
  
</html>

Producción:

  • Antes de hacer clic en el botón:
  • Después de hacer clic en el botón:

Publicación traducida automáticamente

Artículo escrito por PranchalKatiyar 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 *