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

182
Vistas
Mostrar el valor mostrado de una cadena truncada

Lo que quiero hacer

Quiero poder calcular cuánto de una cadena se muestra antes de que se trunque.

por que quiero hacerlo

Tengo una lista de artículos. Puede seleccionar cualquier cantidad de elementos de esta lista. Tengo un elemento de panel que muestra una cadena separada por comas de los nombres de los elementos seleccionados. Si la cadena es demasiado larga, se debe truncar y mostrar un valor +{number} de cualquier elemento seleccionado adicional oculto por el truncado.

Ejemplo básico

https://stackblitz.com/edit/angular-ivy-cbyemy

El stackblitz anterior muestra un ejemplo básico del caso de uso.

Título del panel actual:

un artículo, otro artículo, algo... +6

Resultado deseado:

un artículo, otro artículo, algo... +3

lo que he probado

  • Usando element.innerHTML y element.innerText para leer la cadena mostrada. ambos muestran la cadena completa, no la cadena truncada mostrada.
over 4 years ago · Santiago Trujillo
1 Respuestas
Responde la pregunta

0

Tomé prestada una respuesta de aquí y la modifiqué un poco según el requisito.

Su stackblitz bifurcado, demostración de trabajo actualizada aquí .

Puede obtener el recuento de caracteres visibles de esta función:

 countVisibleCharacters(element): number { var text = element.firstChild.nodeValue; var count = 0; element.removeChild(element.firstChild); for (var i = 0; i < text.length; i++) { var newNode = document.createElement('span'); newNode.appendChild(document.createTextNode(text.charAt(i))); element.appendChild(newNode); if (newNode.offsetLeft < element.offsetWidth) { count++; } } return count; }

Entonces puedes obtener el sufijo de esta manera:

 getTitleSuffix(): void { let element = document.getElementById('title'); let count = this.countVisibleCharacters(element); let substr = element.textContent; substr = substr.substring(count - 1); this.titleSuffix = substr.split(',').length;

}

over 4 years ago · Santiago Trujillo 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