Necesito ayuda tengo un problema al mostrar un elemento dentro de un bucle.

Mr_J21 Seguir

Beta
Verificación en dos pasos desactivada
¡Usuario con pocos negocios! ¡Utiliza siempre saldo de Forobeta!
Desde
8 Ago 2021
Mensajes
38
Necesito ayuda tengo un problema al mostrar un <li></li> dentro de un bucle.
return template.replace(/<li>([\s\S]*?)<\/li>/g, replaceMenuLoop);
 

RaynierL

Gamma
Verificado
Verificación en dos pasos activada
Verificado por Whatsapp
Verificado por Binance
Desde
7 Dic 2020
Mensajes
374
Hola, ahi falta mucho código para poder ayudarte, la función completa, template y replaceMenuLoop.
 

RaynierL

Gamma
Verificado
Verificación en dos pasos activada
Verificado por Whatsapp
Verificado por Binance
Desde
7 Dic 2020
Mensajes
374


¿Necesitas que cada lista mantenga el anchor también?
 

RaynierL

Gamma
Verificado
Verificación en dos pasos activada
Verificado por Whatsapp
Verificado por Binance
Desde
7 Dic 2020
Mensajes
374
Sin embargo ahora que veo tu codigo bien y lo comparo con el que te envie, tengo dudas, tu codigo esta remplazando cada marcador <name> con el valor de entry[prop] donde el prop es el valor capturado anteriormente en el array data.items, luego estas remplazando cada instancia de <li> con el resultado anterior, por lo que al final si te devuelve una cadena de Jane Jane Jane.
 

RaynierL

Gamma
Verificado
Verificación en dos pasos activada
Verificado por Whatsapp
Verificado por Binance
Desde
7 Dic 2020
Mensajes
374
El codigo que yo te envie, estoy quitando todo lo anterior y generando el elemento html completo con cada uno de los data.items y los remplazo en <li>, por que pensé que querias que cada elemento del array se mostrara en una lista.

Pero nunca dijiste que necesitabas exactamente jaja asi que no se realmente si era eso, igual me comentas.
 

Mr_J21

Beta
Verificación en dos pasos desactivada
¡Usuario con pocos negocios! ¡Utiliza siempre saldo de Forobeta!
Desde
8 Ago 2021
Mensajes
38
Sin embargo ahora que veo tu codigo bien y lo comparo con el que te envie, tengo dudas, tu codigo esta remplazando cada marcador <name> con el valor de entry[prop] donde el prop es el valor capturado anteriormente en el array data.items, luego estas remplazando cada instancia de <li> con el resultado anterior, por lo que al final si te devuelve una cadena de Jane Jane Jane.
Es correcto.

Aquí está reemplazando la etiqueta <li></li>:

return template.replace(/<li>([\s\S]*?)<\/li>/g, replaceMenuLoop);

No quiero que reemplaze la etiqueta <li></li>. Solo quiero que identifique la etiqueta y que muestre loop.
Pero no esta resultando de esta manera
: /(<li[^>]>)([\s\S]?)(<\/li>)/g

//* Resultado de lo que espero:

<div class='menus'>
<div class='menu'>
<li> <-----"identificando esta etiqueta para saber donde mostrara loop"
<a class='name'><name></a>
<a class='name'><name></a>
<a class='name'><name></a>
<a class='name'><name></a>
</li>
</div>
</div>

*//


 
Última edición:

RaynierL

Gamma
Verificado
Verificación en dos pasos activada
Verificado por Whatsapp
Verificado por Binance
Desde
7 Dic 2020
Mensajes
374
Bueno, creo que es un poco mas sencillo, lo puedes hacer de este modo:

<div class='menus'>
<div class='menu'>
<li>
<div> <- Identifica este y lo reemplazas (esto hara que quede li)
<a class='name'><name></a>
</div>
</li>
</div>
</div>

return template.replace(/<div>([\s\S]*?)<\/div>/g, replaceMenu);
}
 

RaynierL

Gamma
Verificado
Verificación en dos pasos activada
Verificado por Whatsapp
Verificado por Binance
Desde
7 Dic 2020
Mensajes
374
Puedes poner un ol, ul, etc. Al identificarlo como lo tienes, va a remplazar ese div (o el elemento que coloques alli) por cada elemento del array junto con el anchor. Pero como <li> ya no lo estas remplazando, se queda.
 

Mr_J21

Beta
Verificación en dos pasos desactivada
¡Usuario con pocos negocios! ¡Utiliza siempre saldo de Forobeta!
Desde
8 Ago 2021
Mensajes
38
Bueno, creo que es un poco mas sencillo, lo puedes hacer de este modo:

<div class='menus'>
<div class='menu'>
<li>
<div> <- Identifica este y lo reemplazas (esto hara que quede li)
<a class='name'><name></a>
</div>
</li>
</div>
</div>

return template.replace(/<div>([\s\S]*?)<\/div>/g, replaceMenu);
}
Esto es sólo un ejemplo, si lo hiciera así entonces sería muy complicado.

Este código crecerá con varios bucles.

¿Crees que puedes hacerlo de esta manera entonces?
<div class='menus'>
<div class='menu' var="loop">
<a class='name'><name></a>
</div>
</div>

Simplemente modificando este código: return template.replace(/<div>([\s\S]*?)<\/div>/g, replaceMenu);
 

RaynierL

Gamma
Verificado
Verificación en dos pasos activada
Verificado por Whatsapp
Verificado por Binance
Desde
7 Dic 2020
Mensajes
374
Esto es sólo un ejemplo, si lo hiciera así entonces sería muy complicado.

Este código crecerá con varios bucles.

¿Crees que puedes hacerlo de esta manera entonces?


Simplemente modificando este código: return template.replace(/<div>([\s\S]*?)<\/div>/g, replaceMenu);
quieres que el resultado siga siendo una lista pero que esta vez sea únicamente dentro del div que tiene var='loop' ?

Por que anteriormente me habias dicho que querias este resultado:

1703710247988.png
 

Mr_J21

Beta
Verificación en dos pasos desactivada
¡Usuario con pocos negocios! ¡Utiliza siempre saldo de Forobeta!
Desde
8 Ago 2021
Mensajes
38
quieres que el resultado siga siendo una lista pero que esta vez sea únicamente dentro del div que tiene var='loop' ?

Por que anteriormente me habias dicho que querias este resultado:

Exacto, que identifique el atributo.

Por ejemplo, así es como lo usaré:

<div class='menus'>
<div class='menu1' var="loop">
<a class='name'><name></a>
</div>
<div class='menu2' var="loop">
<a class='name'><name></a>
</div>
</div>
 

¡Regístrate y comienza a ganar!

Beneficios

  • Gana dinero por participar
  • Gana dinero por recomendarnos
  • Descubre ofertas de empleo diariamente
  • Negocios seguros
  • ¡Información premium y más!

Acceder

¿Ya tienes una cuenta? Accede aquí

Arriba