elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.


 


Tema destacado: Deseas probar algunas mejoras a la interfaz del foro? Prueba cake! acerca de


+  Foro de elhacker.net
|-+  Programación
| |-+  Desarrollo Web (Moderador: #!drvy)
| | |-+  [Pregunta]: agregar un elemento span donde se use dicha función..
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: [Pregunta]: agregar un elemento span donde se use dicha función..  (Leído 360 veces)
MiguelCanellas


Desconectado Desconectado

Mensajes: 579



Ver Perfil
[Pregunta]: agregar un elemento span donde se use dicha función..
« en: 27 Julio 2020, 23:10 »

Hola,

estoy intentando hacer una función con javascript que agegue/cree un elemento <span></span> en la parte donde  se uso la función... es decir...

Código
  1. function Agregar_Span()
  2. {
  3.      // [...]
  4. }
  5.  

Código
  1. <p><script>Agregar_Span();</script></p>
  2.  

Me va a quedar...

Código
  1. <p><span></span></p>
  2.  



En línea

@XSStringManolo
Colaborador
***
Desconectado Desconectado

Mensajes: 2.072


Turn off the red ligth


Ver Perfil WWW
Re: [Pregunta]: agregar un elemento span donde se use dicha función..
« Respuesta #1 en: 28 Julio 2020, 02:52 »

Haz un transpiler o usa templates.

O si quieres algo sencillo y rápido usa tags xD
Código
  1. <b class="AgregarSpan"></b>
  2.  
  3. <script>
  4. (function AgregarSpan() {
  5.  var spans = document.querySelectorAll("b['AgregarSpan']");
  6.  for(var i = 0; i < spans.length; ++i) {
  7.    spans[i].outterHTML = "<span></span>";
  8.  }
  9. })()
  10. </script>
  11.  

O lo que dices tú:
Código
  1. <script>AgregarSpan()</script>
  2.  
  3. <script>
  4. function AgregarSpan() {
  5.  var spans = document.querySelectorAll("script");
  6.  for(var i = 0; i < spans.length; ++i) {
  7.    if(spans[i].innerHTML == "AgregarSpan()") {
  8.      spans[i].outterHTML = "<span></span>";
  9.    }
  10.  }
  11. }
  12. </script>
  13.  


Si vas a meterle parámetros entre paréntesis usa substr();

Ej:
Código
  1. if(spans[i].innerHTML.length > 14) {
  2.  if(spans[i].innerHTML.substr(0, 12) == "AgregarSpan(" && spans[i].innerHTML.substr(0, -1) == ")" ) {
  3.    var tmp = document.createElement("span");
  4.    tmp.innerHTML = spans[i].innerHTML.substr(11, tmp.innerHTML.length - 12);
  5.    spans[i].outterHTML = tmp.outterHTML;
  6.  }
  7. }

Algo así más o menos.


« Última modificación: 28 Julio 2020, 03:07 por @XSStringManolo » En línea

WHK
CoAdmin
***
Desconectado Desconectado

Mensajes: 6.288


The Hacktivism is not a crime


Ver Perfil WWW
Re: [Pregunta]: agregar un elemento span donde se use dicha función..
« Respuesta #2 en: 28 Julio 2020, 03:52 »

Pues facil,

Código:
document.write('<span>' + payload + '</span>');

Cuando llames a esa función el DOM escribirá en la misma posición desde donde es llamado, asi que si lo escribes dentro de una división entonces verás su contenido ahi mismo.

Si necesitas escribir la etiqueta de manera dinámica después de toda la carga del DOM (lo cual es lo más recomendado) debes utilizar los selectores https://developer.mozilla.org/es/docs/Web/API/Document/querySelector .

Debes recordar que agregar elementos llamando desde javascript antes de la finalización de la carga del DOM es una mala práctica debido a que el HTML debe ser totalmente independiente a la aplicación de javascript, asi que tu código debiera realmente ir a buscar cada nodo por su id y luego manipularlo a conveniencia. Si no usas ningún framework client side como ReactJS puedes usar jQuery.

Saludos.
En línea

Telegram: @WHK102
Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines