mi documento tiene muchas etiquetas de intervalo como las siguientes:
<span class='myClass'>aaa</span>Me gustaría convertir cada uno de ellos en lo siguiente:
<a href="http://www.example.com/aaa" onclick="myfunc();"><span class='myClass'>aaa</span></a>¿Hay alguna forma de hacer esto? podría ser simple js o jquery (3.1.1)
Gracias de antemano
Utilizar este:
const els=document.querySelectorAll("span.myClass"); els.forEach((el)=>{ const t=el.textContent; const aEl=document.createElement("a"); aEl.href=`http://example.com/${t}`; aEl.appendChild(el.cloneNode(true)) el.parentElement.insertBefore(aEl,el); el.remove() })Con jQuery, puede iterar todos los elementos .myClass usando .each() y luego envolverlos usando .wrap()
$(".myClass").each( function() { $(this).wrap('<a href="http://www.example.com/' + $(this).text() + '" onclick="myfunc();" />'); }); console.log($(".myClass").parent()) <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.1.1/jquery.min.js"></script> <span class='myClass'>aaa</span> <span class='myClass'>bbb</span> <span class='myClass'>ccc</span> <span class='myClass'>ddd</span>