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

112
Vistas
How to manipulate Template element with JQuery?

I'm trying to manipulate inside of <template> element with jQuery but unfortunately some functions like find() don't work for child elements.

How can I replace the text of .name class of this template and append it to inside of another html element?

<template id="conversationTemplate">
  <div class="card conversation mb-1">
    <div class="name">##name##</div>
  </div>    
</template>
about 4 years ago · Juan Pablo Isaza
3 Respuestas
Responde la pregunta

0

A simple solution we have here using just JQuery. Four lines, but with a few steps we can make it singleliner for those who prefer.

$(() => {
  const $templateTag = $('#conversationTemplate');
  const $clonedContent = $($('#conversationTemplate').html());
  $clonedContent.find('.name').html('other text here');
  $templateTag.wrap('<template id="conversationTemplate"></div>').parent().html($clonedContent);
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<template id="conversationTemplate">
  <div class="card conversation mb-1">
    <div class="name">##name##</div>
  </div>    
</template>

about 4 years ago · Juan Pablo Isaza Denunciar

0

You cannot use jQuery selector functions directly on a template. You need to parse this first.

var tpl = $('#conversationTemplate')[0].outerHTML;
$template = $($.parseXML(tpl)).contents();
console.log($template.find('.name').html());
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<template id="conversationTemplate">
    <div class="card conversation mb-1">
        <div class="name">##name##</div>
    </div>
</template>

about 4 years ago · Juan Pablo Isaza Denunciar

0

You can do this in jQuery but you don't need to. This is plain javascript that will also just work.

var template = document.getElementById('conversationTemplate');
var html = template.innerHTML.replace('##name##', 'Jane');
var target = document.getElementById('the-other-element-you-mention');
target.innerHTML = html;

It does two things you asked:

  1. Gets template HTML and replaces the name.
  2. Updates another element with this new HTML.
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