Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

195
Visualizações
javascript nativo HTML interno que no obtiene el contenido creado por vue

Tengo este div que quiero extraer el contenido.

 <div id="print" ref="print_data"> <h1>{{ age }}</h1> </div>

y traté de extraer los contenidos usando el HTML interno nativo

 console.log( document.querySelector('#print').innerHTML );

probado también refs

 console.log( this.$refs['print_data'].innerHTML );

y no puedo ver el contenido de #print div pero puedo ver el contenido de age creado por vue en la página. Cualquier ayuda, ideas por favor es muy apreciada.

Aquí está el código completo

 <div id="app"> <div id="print" ref="print_data"> <span>{{ age }}</span> <span>{{ name }}</span> </div> <button @click="print">Print</button> <button @click="print2">Print 2</button> <button @click="print3">Print 3</button> <button @click="print4">Print 4</button> </div> new Vue({ el: '#app', data: { age: 12, name: '' }, methods: { print: function(){ this.name = 'test'; console.log(document.querySelector('#print').innerHTML); // returns HTML but 'age' is missing, no content generated by vue }), print2: function(){ this.name = 'test'; console.log(this.$refs['print_data'].innerHTML); // returns HTML but 'age' is missing, no content generated by vue }), print3: function(){ this.name = 'test2'; console.log(this.$refs['print_data'].content.innerHTML); // returns error }), print4: function(){ this.name = 'test3'; console.log(this.$refs['print_data'].toString()); // returns [object HTMLDivElement] }), } });
about 4 years ago · Juan Pablo Isaza
1 Respostas
Responde à pergunta

0

Descubrí que es porque vue no terminó de actualizar el DOM, lo que resultó en el problema, en su lugar, uso $nextTick() y lo envuelvo con async

 ( async function(){ await _this.$nextTick().then(() => { console.log(document.getElementById("print").innerHTML); }); })()

y está funcionando ahora.

about 4 years ago · Juan Pablo Isaza Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda