Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

131
Vistas
Jquery no encuentra enlaces

Tengo el siguiente código con Jquery.

 var myHTML = $(`<a href="/wiki/Indian_Rebellion_of_1857" title="Indian Rebellion of 1857">Indian Rebellion of 1857</a>: Indian rebels seize Delhi from the British.<sup id="cite_ref-11" class="reference"><a href="#cite_note-11">[11]</a></sup>`) var firstLinkText = myHTML.find("a:first").text() console.log(firstLinkText) // Output "[11]"

No sé por qué no se selecciona el primer enlace <a> , pero ¿el último? ¿Algo mal en mi código, alguna solución?

 var html = `<a href="/wiki/Indian_Rebellion_of_1857" title="Indian Rebellion of 1857">Indian Rebellion of 1857</a>: Indian rebels seize Delhi from the British.<sup id="cite_ref-11" class="reference"><a href="#cite_note-11">[11]</a></sup>` var myHTML = $(html) var firstLinkText = myHTML.find("a:first").text() console.log(firstLinkText) document.body.textContent = (html) document.write("<br><br>Output: " + firstLinkText)
 <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>

about 4 years ago · Juan Pablo Isaza
3 Respuestas
Responde la pregunta

0

El problema se debe a que al usar find() le está diciendo a jQuery que busque el selector que proporciona dentro del elemento principal. Como el padre en sí es el elemento a , obviamente no encuentra nada.

Para arreglar esto, puedes usar filter() :

 var $myHTML = $(`<a href="/wiki/Indian_Rebellion_of_1857" title="Indian Rebellion of 1857">Indian Rebellion of 1857</a>: Indian rebels seize Delhi from the British.<sup id="cite_ref-11" class="reference"><a href="#cite_note-11">[11]</a></sup>`) var firstLinkText = $myHTML.filter('a:first').text() console.log(firstLinkText)
 <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.6.0/jquery.min.js"></script>

about 4 years ago · Juan Pablo Isaza Denunciar

0

.find() solo busca coincidencias en los descendientes, no en los elementos de nivel superior de la colección. Por lo tanto, debe envolver el HTML en un <div> para que todo sea un descendiente.

 var myHTML = $(`<div><a href="/wiki/Indian_Rebellion_of_1857" title="Indian Rebellion of 1857">Indian Rebellion of 1857</a>: Indian rebels seize Delhi from the British.<sup id="cite_ref-11" class="reference"><a href="#cite_note-11">[11]</a></sup>`) var firstLinkText = myHTML.find("a:first").text() console.log(firstLinkText)
 <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>

about 4 years ago · Juan Pablo Isaza Denunciar

0

Parece que la cadena html debe ser un solo elemento con niños.

Parece que no es posible usar :first colocando una cadena con dos etiquetas HTML sin un padre.

La solución a su problema puede ser envolver su html en cualquier etiqueta para buscar su elemento.

 const html = `<a href="/wiki/Indian_Rebellion_of_1857" title="Indian Rebellion of 1857">Indian Rebellion of 1857</a>: Indian rebels seize Delhi from the British.<sup id="cite_ref-11" class="reference"><a href="#cite_note-11">[11]</a></sup>` var myHTML = $(`<span>${html}</span>`) var firstLinkText = myHTML.find("a:first").text() console.log(firstLinkText) // Output "Indian Rebellion of 1857"
 <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>

¡Muy interesante y más rápido el método .filter() de la otra respuesta! Dejo mi respuesta como alternativa...

about 4 years ago · Juan Pablo Isaza Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda