Así que estoy usando jQuery para concatenar una cadena a todas las etiquetas de encabezado, es decir, h1, h2,...., h6 y mostrarlo en la pantalla. Solo quiero ayuda en la parte de reemplazo y si tiene una solución en javascript simple, también será útil.
Este es mi código que estoy seguro es incorrecto:
jQuery.noConflict(); jQuery(document).ready(function(){ var heading_text = '$heading_text'; var page_heading = jQuery('h1','h2','h3','h4','h5','h6').text(); //concatenating the two variables page_heading.html(page_heading+' '+heading_text); }); aquí, $heading_text es la entrada recibida. por ejemplo: si $heading_text es xyz y el texto entre la etiqueta h1 es oh , luego de llamar a esta función, el texto entre la etiqueta h1 debería ser oh xyz
elems = $('h1, h2, h3, h4, h5, h6'); heading_text = ' some text'; elems.each(function(){ text = $(this).text(); $(this).text(text + heading_text); }) <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script> <h1>h1</h1> <h2>h2</h2> <h3>h3</h3> <h4>h4</h4> <h5>h5</h5> <h6>h6</h6>Puede usar la .text(function) para agregar texto, sin embargo, esto reemplazará cualquier html dentro del encabezado. La alternativa es agregar contenido nuevo .append() a cada encabezado.
Como jQuery funciona en colecciones, no hay necesidad de bucles:
var heading_text = '$heading_text'; $('h1,h2,h3,h4,h5,h6').append(" " + heading_text); <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script> <h1>H1 <i>italic</i></h1> <h3>H3</h3> Lo mismo, pero usando .text()
var heading_text = '$heading_text'; $('h1,h2,h3,h4,h5,h6').text((i, txt) => txt + " " + heading_text); <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script> <h1>H1 <i>italic</i></h1> <h3>H3</h3>