Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

133
Views
¿Cómo puedo resolver el error "La propiedad 'estilo' no existe en el tipo de error 'Elemento'?

Realmente necesito ayuda para resolver este error. Escribí el siguiente código JavaScript a continuación para permitir que mi indicador de pestaña se muestre en una pestaña en la que se hizo clic cuando se hizo clic en ella, pero todo lo que recibo es un error que dice: "La propiedad 'estilo' no existe en el tipo 'Elemento'". Las pestañas funcionan perfectamente bien, puedo cambiar de una pestaña a otra. He visto preguntas similares, pero mi problema no se resolvió siguiendo sus sugerencias principales. Actualmente estoy construyendo un proyecto angular y escribí mi JavaScript en la función ngInit(){} en mi archivo .ts. El código está abajo:

 ngOnInit() { let tabPanes = this._class('tab-header')[0].getElementsByTagName('div'); for (let i = 0; i < tabPanes.length; i++) { tabPanes[i].addEventListener('click', () => { this._class('tab-header')[0] .getElementsByClassName('active')[0] .classList.remove('active'); tabPanes[i].classList.add("active"); this._class('tab-indicator')[0].style.top = 'calc(80px + ${i*50}px)'; // This flags a "property 'style' doe not exist on type 'Element'" error. this._class('tab-content')[0] .getElementsByClassName('active')[0] .classList.remove('active'); this._class('tab-content')[0] .getElementsByTagName('div')[i] .classList.add('active'); }); } } _class(name: any) { return document.getElementsByClassName(name); }

¿Qué hice mal? ¿Alguna idea sobre cómo resolver esto?

about 4 years ago · Juan Pablo Isaza
2 answers
Answer question

0

getElementsByClassName devuelve una HTMLCollectionOf<Element> . No hay una propiedad de style en el tipo de elemento y, por lo tanto, el error.

Puede escribirlo en la colección de HTMLElement y eso debería resolver el problema:

 _class(name: any): HTMLCollectionOf<HTMLElement> { return document.getElementsByClassName(name) as HTMLCollectionOf<HTMLElement>; }

PD: aunque lo anterior debería resolver el error de mecanografiado, pero como Eliseo mencionó en uno de los comentarios, puede utilizar el enlace de eventos Angular y el enlace de propiedades al atributo de clase para hacerlo de manera Angular.

about 4 years ago · Juan Pablo Isaza Report

0

Cambie el método _class a: -

 _class(name: any): NodeList<HTMLElement> { return document.getElementsByClassName(name) as NodeList<HTMLElement>; }
about 4 years ago · Juan Pablo Isaza Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!