Así que imagine que tenemos una página de producto que inicialmente carga un div de precio vacío, y ese div luego se llena de forma asíncrona después de cargar la página.
Usando este código, esperamos hasta que el precio parezca haberse completado y luego ejecutamos una función para copiar este precio en otras partes de la página.
Esto funciona , pero no hace exactamente lo que quiero:
// When .price exists, and innerText equals exactly "$10.00", run updateOtherPrices(); when(function () { return document.querySelector(".price") != null && document.querySelector(".price").innerText === "$10.00"; })Realmente debería funcionar por cualquier precio, no solo $ 10.00. Entonces, mi siguiente paso lógico fue verificar que la longitud del texto interno del precio sea mayor a 3.
// When .price exists, and innerText is 3 or more, run updateOtherPrices(); when(function () { return document.querySelector(".price") != null && document.querySelector(".price").innerText.length >= 2; })El problema es que este segundo se dispara instantáneamente y se ejecuta antes de que el precio exista. ¿Porqué es eso?
Tampoco he podido encontrar otra forma de esperar, aparte de una coincidencia exacta en el texto interno. ¿Alguna idea de qué más probar?