CursosEmpresasBlogLiveConfPrecios

Leer nodos

Clase 5 de 29 • Curso de Manipulación del DOM

Clase anteriorSiguiente clase

Contenido del curso

DOM y Web API

  • 1
    Y entonces nació internet...

    Y entonces nació internet...

    02:23 min
  • 2

    Accede a la versión más actualizada de este contenido

    00:14 min
  • 3
    ¿Qué es el DOM?

    ¿Qué es el DOM?

    02:39 min
  • 4
    Web APIs modernas

    Web APIs modernas

    03:17 min

Operaciones básicas

  • 5
    Leer nodos

    Leer nodos

    Viendo ahora
  • 6
    NodeLists vs Array

    NodeLists vs Array

    03:46 min
  • 7
    Crear y agregar

    Crear y agregar

    15:47 min
  • 8
    Otras formas de agregar

    Otras formas de agregar

    06:55 min
  • 9
    Atributos y propiedades

    Atributos y propiedades

    05:12 min
  • 10
    Eliminar nodos

    Eliminar nodos

    09:31 min
  • 11
    Operaciones en lote

    Operaciones en lote

    06:52 min

Workshop 1: Fetch

  • 12
    Presentación del proyecto

    Presentación del proyecto

    01:10 min
  • 13
    Descargando información y creando nodos

    Descargando información y creando nodos

    18:36 min
  • 14
    Enriqueciendo la información

    Enriqueciendo la información

    10:53 min
  • 15
    Usando la API de internacionalización del browser

    Usando la API de internacionalización del browser

    12:14 min
  • 16
    Comparte el resultado

    Comparte el resultado

    02:18 min

Eventos

  • 17
    Reaccionar a lo que sucede en el DOM

    Reaccionar a lo que sucede en el DOM

    13:58 min
  • 18
    Event propagation

    Event propagation

    12:08 min
  • 19
    Event delegation

    Event delegation

    05:32 min

Workshop 2: Lazy loading

  • 20
    Presentación del proyecto

    Presentación del proyecto

    03:34 min
  • 21
    Nuestro propio plugin Lazy Loading

    Nuestro propio plugin Lazy Loading

    08:32 min
  • 22
    Creando las imagenes con JavaScript

    Creando las imagenes con JavaScript

    17:33 min
  • 23
    Intersection Observer

    Intersection Observer

    14:21 min
  • 24
    Aplicando Lazy loading

    Aplicando Lazy loading

    13:07 min
  • 25
    Comparte el resultado

    Comparte el resultado

    03:17 min

Workshop 3

  • 26
    Proyectos propuestos

    Proyectos propuestos

    04:17 min

Librerías relacionadas

  • 27
    ¿Y jQuery?

    ¿Y jQuery?

    03:41 min
  • 28
    ¿Y JSX?

    ¿Y JSX?

    09:40 min

Conclusiones

  • 29
    Conclusiones

    Conclusiones

    01:56 min
  • Tomar el examen del curso
    • Sebastian Gonzalez

      Sebastian Gonzalez

      student•
      hace 5 años

      Básicamente tenemos 4 formas de leer nodos con JS: . .

      • parent.getElementById('id') => nos permite obtener un elemento a través de su id. .
      • parent.getElementsByClassName('class') => obtiene un array con todos los elementos hijos que tengan esa clase, ojo "getElementByClassName" no existe, es decir no podremos obtener solo 1 elemento con esa clase. .
      • parent.getElementsByTagName('div') => con este método obtenemos una lista o "array list" con todos los elementos que tengan esa etiqueta, ejemplo todos los divs. Al igual que con el método anterior no hay posibilidad de usarlo en singular, siempre tendremos que usar getElements .
      • parent.querySelector() => nos permite buscar de 3 formas, con id, clase o tagName. A diferencia de los 2 anteriores este nos devuelve 1 solo elemento, el primero que contenga el valor que se le paso. Id => ('#id'), class => ('.class'), tagName ('div') .
      • parent.querySelectorAll() => este método retorna una array list con todos los elementos que tengan ese selector (id, class o tagName) . Casi siempre el elemento "padre o parent" es document. ya que estamos haciendo referencia a todo el DOM, todo el documento y esto en ciertos casos nos permite evitar errores. ejemplo = const button = document.querySelector('#button)
        Jimmy Buriticá Londoño

        Jimmy Buriticá Londoño

        student•
        hace 5 años

        Muy bien explicado, gracias.

        Andrés Felipe García Rendón

        Andrés Felipe García Rendón

        student•
        hace 5 años

        Muchas gracias por compartir tus apuntes. Saludos

      Alex Maldonado

      Alex Maldonado

      student•
      hace 5 años
      Ei2AUiIVgAM9th-.jpg
        Pablo Guzman

        Pablo Guzman

        student•
        hace 5 años

        Esto debería estar entre los más votados

        Rolando Mamani Salas

        Rolando Mamani Salas

        student•
        hace 5 años

        Muy buen aporte muchas gracias

      Daniloo Morales

      Daniloo Morales

      student•
      hace 5 años

      Hola, Me gustaría compartir un resumen de la clase 🚀

      Node_0.jpg

        Jonathan 🦑 Alvarez

        Jonathan 🦑 Alvarez

        teacher•
        hace 5 años

        Ay pero que bello

        Edgar Lopez Arroyo

        Edgar Lopez Arroyo

        student•
        hace 5 años

        Que buen resumen!!! :D

      Carlos Eduardo Gomez García

      Carlos Eduardo Gomez García

      teacher•
      hace 5 años

      Desde JavaScript podemos leer nodos, tenemos 3 formas de hacerlo: .

      • document.getElementById(): Obtiene un elemento por su ID
      • parent.getElementByTagName(): Retorna un arreglo (realmente es un HTMLCollection) con todos los resultados coincidentes por el nombre de su etiqueta
      • parent.getElementByClassName(): Retorna un arreglo (realmente es un HTMLCollection) con todos los resultados coincidentes por su clase

      . Sin embargo, existen 2 selectores más poderosos 👀: .

      • parentElement.querySelector(): Selecciona un solo elemento y lo devuelve, la selección se hace a través de lo que le pases entre paréntesis, y la selección puede ser con sintaxis de CSS!! Retornará la primera coincidencia
      • parentElement.querySelectorAll(): Selecciona varios elemento y los devuelve, la selección se hace a través de lo que le pases entre paréntesis, y la selección puede ser con sintaxis de CSS!! Retornará un arreglo (en realidad es un NodeList)

      . Como pueden ver, es muy parecido a lo que teníamos con jQuery 👀

        Andrés Felipe Lopez gomez

        Andrés Felipe Lopez gomez

        student•
        hace 5 años

        Excelente aporte

        Rolando Mamani Salas

        Rolando Mamani Salas

        student•
        hace 5 años

        muchas gracias por el aporte

      Fernando Quinteros Gutierrez

      Fernando Quinteros Gutierrez

      student•
      hace 5 años

      👉 Sitio de la clase

        Andrés Felipe Lopez gomez

        Andrés Felipe Lopez gomez

        student•
        hace 5 años

        Muchas gracias

        Rolando Mamani Salas

        Rolando Mamani Salas

        student•
        hace 5 años

        Muchas gracias

      Marianna Guedez

      Marianna Guedez

      student•
      hace 4 años

      LEER NODOS MÉTODOS TRADICIONALES

      dom metodos tradicionales.png
      MÉTODOS MODERNOS
      dom metodos modernos.png

        Max Andy Diaz Neyra

        Max Andy Diaz Neyra

        student•
        hace 4 años

        Bonitas infografias, te quedaron muy bien. En que programa las hicistes?

      Aleja Henao Espitia

      Aleja Henao Espitia

      student•
      hace 5 años

      Para que no te sientas perdido: 🎁 https://getbootstrap.com/docs/4.5/examples/checkout/ esta es la página específica en la que el profe está trabajando

      Fernando Quinteros Gutierrez

      Fernando Quinteros Gutierrez

      student•
      hace 5 años

      👀 Leer nodos

      Ideas/conceptos claves

      Los objetos NodeList son colecciones de nodos como los devueltos por propiedades como Node.childNodes y el método document.querySelectorAll () Aunque NodeList no es un Array, es posible iterar sobre él utilizando forEach(). También puede convertirse a un Array usando Array.from

      Apuntes

      • Podemos usar los siguientes métodos para manipular el DOM

      🔢 Para obtener el elemento por el ID

      document.getElementById()

      🛑 Para obtener el elemento por el nombre de la etiqueta

      parent.getElementsByTagName()

      🏌️‍♀️ Para obtener el elemento por el nombre de la clase

      parent.getElementByClassName()
      • La web API ha cambiado bastante, por lo tanto, estos selectores no son recomendados cuando trabajamos con aplicaciones reales
      • Existen 2 alternativas para este tipo de operaciones
      parentElement.querySelector("") // tag => "div", "section" // clases => ".class1" // Id => "#idContenedor"
      • Permite seleccionar un elemento que especifiquemos en su primer argumento como una cadena o string

      parentElement.querySelectorAll()
      • Lo usamos cuando queremos traer todos los elementos que especifiquemos y nos devuelve una nodeList

      RESUMEN: Para poder leer nodos tenemos diferentes métodos brindados por el navegador, entre los mas destacados estan los de querySelector y querySelectorAll que nos permiten especificar lo que deseamos traer mediante una cadena de texto. Ademas que si nos devuelven una lista esta sera una nodeList

        Andrés Felipe Lopez gomez

        Andrés Felipe Lopez gomez

        student•
        hace 5 años

        Excelente aporte

        Rolando Mamani Salas

        Rolando Mamani Salas

        student•
        hace 5 años

        Excelente aporte

      Santiago Lopera Naranjo

      Santiago Lopera Naranjo

      student•
      hace 5 años

      Selectores mas recomendados:

      Por <tag/>

      document.querySelector('div')

      Por clase

      document.querySelector('.contianers')

      Por id

      document.querySelector('#user_name')

      :D

        Giselle Desiree Boyer Jimenez

        Giselle Desiree Boyer Jimenez

        student•
        hace 5 años

        No conocía estas opciones, gracias por compartir!

        Rolando Mamani Salas

        Rolando Mamani Salas

        student•
        hace 5 años

        muchas gracias por el resumen

      Rodrigo Reyes

      Rodrigo Reyes

      student•
      hace 5 años

      Esta clase o curso creo tardo mucho en llegar

        Hermes Aguilar

        Hermes Aguilar

        student•
        hace 5 años

        x2

        Roberto Medina

        Roberto Medina

        student•
        hace 5 años

        Hola que tal,

        Pero lo importante es que ya llegó y está muy interesante.

      Anfernee Valera

      Anfernee Valera

      student•
      hace 4 años

      Ya desde acá me pregunto porque este curso no está mas cerca en la escuela de desarrollo Web o la de JS o la de las rutas de los frameworks/librerias

        Angel David Contreras Barrios

        Angel David Contreras Barrios

        student•
        hace 4 años

        Coincido con lo mismo compañero. En varios cursos de Js no entendía muy bien lo que hacia el profe, hasta que decidí hacer este curso.

      Adrián Castillo

      Adrián Castillo

      student•
      hace 5 años

      Que tiene de diferente en utilizar "document.getElement.." y "parent.getElement..." espeificamente entre document y parent

        Carlos Eduardo Gomez García

        Carlos Eduardo Gomez García

        teacher•
        hace 5 años

        No hay una diferencia como tal, recuerda que document es un objeto global de JavaScript que representa al documento, es decir, cualquier nodo que quieras buscar lo va a hacer desde la raíz del documento, y para ese caso se usa document tal cual.

        En cambio, parent no significa nada, esa no es una variable que exista en JavaScript, sin embargo, se usa para representar que ahí puede ir cualquier elemento padre, incluyendo document ya que este también es un elemento padre. Por ejemplo, podrías usar document.getElement... para buscar desde el nodo raíz, o suponiendo que tienes una variable llamada div que contenga un elemento div, podrías usar div.getElement...

        En resumen parent.getElement... es solo una forma de representar que ahí puede ir cualquier nodo padre desde el cuál se empezará a buscar :D

        Jonathan 🦑 Alvarez

        Jonathan 🦑 Alvarez

        teacher•
        hace 5 años

        Gracias @RetaxMaster! Muy buena explicación :D

      Janet Guadalupe Torres Ménera

      Janet Guadalupe Torres Ménera

      student•
      hace 4 años

      ¿Cómo le hace para tener dos consolas?

        Jonathan 🦑 Alvarez

        Jonathan 🦑 Alvarez

        teacher•
        hace 4 años

        Hola Janet!

        A cuáles dos te refieres?

        Si es a la que aparece desde la parte inferior de los DevTools, se abre presionando ESC o manualmente arrastrando la pestaña inferior hasta abrirla.

        Si responde a tu pregunta? :D

      Luis Gabriel Cazzullo

      Luis Gabriel Cazzullo

      student•
      hace 5 años

      Siempre usé querySelector y querySelectorAll. Pero, no entiendo por qué son preferibles a los otros.

        Marcelo Daniel Yudis

        Marcelo Daniel Yudis

        student•
        hace 5 años

        Porque nos da mucha versatilidad al buscar los elementos :D

        Jiovanni Romo

        Jiovanni Romo

        student•
        hace 5 años

        Como comentó Marcelo, querySelector y querySelectorAll nos permiten tener mayor versatilidad y especificidad a la hora de buscar distintos elementos, podemos usar nodeNames, clases CSS, ID's, etc. Mientras que en otros no, o usamos solo clases o solo id's.

      Mariel Gonzalez Yescas

      Mariel Gonzalez Yescas

      student•
      hace 3 años

      https://getbootstrap.com/docs/4.5/examples/checkout/

      David Daniel Castillo Nava

      David Daniel Castillo Nava

      student•
      hace 5 años

      Link de ejemplo de Boostrap

      //Obtienes por nombre de id el elemento let getById = document.getElementById("id"); //Obtienes por nombre de tag el elemento let getByTag = parent.getElementByTagName("tagname"); //Obtienes por el nombre de clase el elemento let getByClass = parent.getElementByClassName("classname"); //Obtiene el primer elemento que cumpla el selector pasado let getByQuery = parent.querySelector(".classname #id o selector formar un selector de regla css"); //Obtiene todos los elementos que cumpla el selector pasado let getByQueryAll = partent.querySelectorAll(".classname #id o selector formar un selector de regla css");
      Anggi Vanesa Pallares Solis

      Anggi Vanesa Pallares Solis

      student•
      hace 4 años
      1.JPG
      Martin Lazzeri

      Martin Lazzeri

      student•
      hace 5 años

      por que no es recomendado utilizar los getElement... y sí es recomendado usar los querySelector?

        David Granados

        David Granados

        student•
        hace 5 años

        Aunque no se porque es recomendado el querySelector la diferencia es el tipo de objetos que retorna cada una, por acá hay un artículo que los explica bastante bien con ejemplos.

        Jenny Aguilar

        Jenny Aguilar

        student•
        hace 5 años

        Cada semana por medio aprox me paso por este post, esperando que alguien lo responda, porque estoy bastante intrigada también sobre por qué NO es recomendado los getElement...

      Alfonso Aguilar Grimaldo

      Alfonso Aguilar Grimaldo

      student•
      hace 5 años

      ¿Siempre vamos a usar el parent o el document para leer los nodos? ¿o hay excepciones?

        Daniel Adolfo Ordoñez Rubio

        Daniel Adolfo Ordoñez Rubio

        student•
        hace 5 años

        Hola, Alfonso :) Si se trata de varios nodos, lo mejor es hacerlo desde el padre porque es el elemento común que los conecta. Si se trata de un solo nodo, puedes usar un selector como su ID o una combinación específica para el nodo que quieras tratar.

        Arturo Mauricio Terceros Beltrán

        Arturo Mauricio Terceros Beltrán

        student•
        hace 5 años

        Si quieres seleccionar un nodo por lo general lo realizamos desde el document para realizar la búsqueda del nodo dese la raíz.

      Daniel Esteban Santos Mendez

      Daniel Esteban Santos Mendez

      student•
      hace 5 años

      ¿Por qué no es recomendable usar ById, ByTagName y ByClassName?

        Carlos Eduardo Gomez García

        Carlos Eduardo Gomez García

        teacher•
        hace 5 años

        En ningún momento se dijo que no sean recomendables, solo no son muy convenientes, ya que son muy específicos, usando document.querySelector tienes mucha más flexibilidad :D

    Escuelas

    • Desarrollo Web
      • Fundamentos del Desarrollo Web Profesional
      • Diseño y Desarrollo Frontend
      • Desarrollo Frontend con JavaScript
      • Desarrollo Frontend con Vue.js
      • Desarrollo Frontend con Angular
      • Desarrollo Frontend con React.js
      • Desarrollo Backend con Node.js
      • Desarrollo Backend con Python
      • Desarrollo Backend con Java
      • Desarrollo Backend con PHP
      • Desarrollo Backend con Ruby
      • Bases de Datos para Web
      • Seguridad Web & API
      • Testing Automatizado y QA para Web
      • Arquitecturas Web Modernas y Escalabilidad
      • DevOps y Cloud para Desarrolladores Web
    • English Academy
      • Inglés Básico A1
      • Inglés Básico A2
      • Inglés Intermedio B1
      • Inglés Intermedio Alto B2
      • Inglés Avanzado C1
      • Inglés para Propósitos Específicos
      • Inglés de Negocios
    • Marketing Digital
      • Fundamentos de Marketing Digital
      • Marketing de Contenidos y Redacción Persuasiva
      • SEO y Posicionamiento Web
      • Social Media Marketing y Community Management
      • Publicidad Digital y Paid Media
      • Analítica Digital y Optimización (CRO)
      • Estrategia de Marketing y Growth
      • Marketing de Marca y Comunicación Estratégica
      • Marketing para E-commerce
      • Marketing B2B
      • Inteligencia Artificial Aplicada al Marketing
      • Automatización del Marketing
      • Marca Personal y Marketing Freelance
      • Ventas y Experiencia del Cliente
      • Creación de Contenido para Redes Sociales
    • Inteligencia Artificial y Data Science
      • Fundamentos de Data Science y AI
      • Análisis y Visualización de Datos
      • Machine Learning y Deep Learning
      • Data Engineer
      • Inteligencia Artificial para la Productividad
      • Desarrollo de Aplicaciones con IA
      • AI Software Engineer
    • Ciberseguridad
      • Fundamentos de Ciberseguridad
      • Hacking Ético y Pentesting (Red Team)
      • Análisis de Malware e Ingeniería Forense
      • Seguridad Defensiva y Cumplimiento (Blue Team)
      • Ciberseguridad Estratégica
    • Liderazgo y Habilidades Blandas
      • Fundamentos de Habilidades Profesionales
      • Liderazgo y Gestión de Equipos
      • Comunicación Avanzada y Oratoria
      • Negociación y Resolución de Conflictos
      • Inteligencia Emocional y Autogestión
      • Productividad y Herramientas Digitales
      • Gestión de Proyectos y Metodologías Ágiles
      • Desarrollo de Carrera y Marca Personal
      • Diversidad, Inclusión y Entorno Laboral Saludable
      • Filosofía y Estrategia para Líderes
    • Diseño de Producto y UX
      • Fundamentos de Diseño UX/UI
      • Investigación de Usuarios (UX Research)
      • Arquitectura de Información y Usabilidad
      • Diseño de Interfaces y Prototipado (UI Design)
      • Sistemas de Diseño y DesignOps
      • Redacción UX (UX Writing)
      • Creatividad e Innovación en Diseño
      • Diseño Accesible e Inclusivo
      • Diseño Asistido por Inteligencia Artificial
      • Gestión de Producto y Liderazgo en Diseño
      • Diseño de Interacciones Emergentes (VUI/VR)
      • Desarrollo Web para Diseñadores
      • Diseño y Prototipado No-Code
    • Contenido Audiovisual
      • Fundamentos de Producción Audiovisual
      • Producción de Video para Plataformas Digitales
      • Producción de Audio y Podcast
      • Fotografía y Diseño Gráfico para Contenido Digital
      • Motion Graphics y Animación
      • Contenido Interactivo y Realidad Aumentada
      • Estrategia, Marketing y Monetización de Contenidos
    • Desarrollo Móvil
      • Fundamentos de Desarrollo Móvil
      • Desarrollo Nativo Android con Kotlin
      • Desarrollo Nativo iOS con Swift
      • Desarrollo Multiplataforma con React Native
      • Desarrollo Multiplataforma con Flutter
      • Arquitectura y Patrones de Diseño Móvil
      • Integración de APIs y Persistencia Móvil
      • Testing y Despliegue en Móvil
      • Diseño UX/UI para Móviles
    • Diseño Gráfico y Arte Digital
      • Fundamentos del Diseño Gráfico y Digital
      • Diseño de Identidad Visual y Branding
      • Ilustración Digital y Arte Conceptual
      • Diseño Editorial y de Empaques
      • Motion Graphics y Animación 3D
      • Diseño Gráfico Asistido por Inteligencia Artificial
      • Creatividad e Innovación en Diseño
    • Programación
      • Fundamentos de Programación e Ingeniería de Software
      • Herramientas de IA para el trabajo
      • Matemáticas para Programación
      • Programación con Python
      • Programación con JavaScript
      • Programación con TypeScript
      • Programación Orientada a Objetos con Java
      • Desarrollo con C# y .NET
      • Programación con PHP
      • Programación con Go y Rust
      • Programación Móvil con Swift y Kotlin
      • Programación con C y C++
      • Administración Básica de Servidores Linux
    • Negocios
      • Fundamentos de Negocios y Emprendimiento
      • Estrategia y Crecimiento Empresarial
      • Finanzas Personales y Corporativas
      • Inversión en Mercados Financieros
      • Ventas, CRM y Experiencia del Cliente
      • Operaciones, Logística y E-commerce
      • Gestión de Proyectos y Metodologías Ágiles
      • Aspectos Legales y Cumplimiento
      • Habilidades Directivas y Crecimiento Profesional
      • Diversidad e Inclusión en el Entorno Laboral
      • Herramientas Digitales y Automatización para Negocios
    • Blockchain y Web3
      • Fundamentos de Blockchain y Web3
      • Desarrollo de Smart Contracts y dApps
      • Finanzas Descentralizadas (DeFi)
      • NFTs y Economía de Creadores
      • Seguridad Blockchain
      • Ecosistemas Blockchain Alternativos (No-EVM)
      • Producto, Marketing y Legal en Web3
    • Recursos Humanos
      • Fundamentos y Cultura Organizacional en RRHH
      • Atracción y Selección de Talento
      • Cultura y Employee Experience
      • Gestión y Desarrollo de Talento
      • Desarrollo y Evaluación de Liderazgo
      • Diversidad, Equidad e Inclusión
      • AI y Automatización en Recursos Humanos
      • Tecnología y Automatización en RRHH
    • Finanzas e Inversiones
      • Fundamentos de Finanzas Personales y Corporativas
      • Análisis y Valoración Financiera
      • Inversión y Mercados de Capitales
      • Finanzas Descentralizadas (DeFi) y Criptoactivos
      • Finanzas y Estrategia para Startups
      • Inteligencia Artificial Aplicada a Finanzas
      • Domina Excel
      • Financial Analyst
      • Conseguir trabajo en Finanzas e Inversiones
    • Startups
      • Fundamentos y Validación de Ideas
      • Estrategia de Negocio y Product-Market Fit
      • Desarrollo de Producto y Operaciones Lean
      • Finanzas, Legal y Fundraising
      • Marketing, Ventas y Growth para Startups
      • Cultura, Talento y Liderazgo
      • Finanzas y Operaciones en Ecommerce
      • Startups Web3 y Blockchain
      • Startups con Impacto Social
      • Expansión y Ecosistema Startup
    • Cloud Computing y DevOps
      • Fundamentos de Cloud y DevOps
      • Administración de Servidores Linux
      • Contenerización y Orquestación
      • Infraestructura como Código (IaC) y CI/CD
      • Amazon Web Services
      • Microsoft Azure
      • Serverless y Observabilidad
      • Certificaciones Cloud (Preparación)
      • Plataforma Cloud GCP

    Platzi y comunidad

    • Platzi Business
    • Live Classes
    • Lanzamientos
    • Executive Program
    • Trabaja con nosotros
    • Podcast

    Recursos

    • Manual de Marca

    Soporte

    • Preguntas Frecuentes
    • Contáctanos

    Legal

    • Términos y Condiciones
    • Privacidad
    • Tyc promociones
    Reconocimientos
    Reconocimientos
    Logo reconocimientoTop 40 Mejores EdTech del mundo · 2024
    Logo reconocimientoPrimera Startup Latina admitida en YC · 2014
    Logo reconocimientoPrimera Startup EdTech · 2018
    Logo reconocimientoCEO Ganador Medalla por la Educación T4 & HP · 2024
    Logo reconocimientoCEO Mejor Emprendedor del año · 2024
    De LATAM conpara el mundo
    YoutubeInstagramLinkedInTikTokFacebookX (Twitter)Threads