Foros del Web » Programando para Internet » Javascript »

Cerrar tag de HTML con Javascript

Estas en el tema de Cerrar tag de HTML con Javascript en el foro de Javascript en Foros del Web. Estoy haciendo un codigo en Javascipt que identifica un elemento y antes de ese elemento inserta otro, seguro que con codigo lo entendeis mejor: Código: ...
  #1 (permalink)  
Antiguo 25/08/2008, 07:23
s0b
 
Fecha de Ingreso: mayo-2007
Mensajes: 8
Antigüedad: 17 años
Puntos: 0
Cerrar tag de HTML con Javascript

Estoy haciendo un codigo en Javascipt que identifica un elemento y antes de ese elemento inserta otro, seguro que con codigo lo entendeis mejor:

Código:
var todospre, estepre;
todospre = document.evaluate(
    "//pre[@class='caja']",
    document,
    null,
    XPathResult.UNORDERED_NODE_SNAPSHOT_TYPE,
    null);
for (var i = 0; i < todospre.snapshotLength; i++) {
    estepre = todospre.snapshotItem(i);
    
    fin = document.createElement('a');
    estepre.parentNode.insertBefore(fin, estepre);
    
}
Resulta que este codigo lo que hace es algo asi:

Código HTML:
<a></a><pre class="caja">lalala</pre> 
Y lo que yo quiero es solo cerrar el enlace, esto:

Código HTML:
</a><pre class="caja">lalala</pre> 

He probado con document.write y cosas asi, pero sin resultado. ¿Se os ocurre alguna idea de meter solo el tag de cerrar enlace?

Un saludo!
  #2 (permalink)  
Antiguo 25/08/2008, 07:54
Avatar de David
Moderador
 
Fecha de Ingreso: abril-2005
Ubicación: In this planet
Mensajes: 15.720
Antigüedad: 19 años, 1 mes
Puntos: 839
Exclamación Respuesta: Cerrar tag de HTML con Javascript

Pero, ¿cuál sería la lógica de eso?. ¿Has probado con innerHTML?. Aunque creo que usando correctamente document.write() resuelve el problema.

Pero sigo sin entender cuál sería la utilidad o la lógica de eso.
__________________
Por favor, antes de preguntar, revisa la Guía para realizar preguntas.
  #3 (permalink)  
Antiguo 25/08/2008, 08:03
Avatar de Panino5001
Me alejo de Omelas
 
Fecha de Ingreso: mayo-2004
Ubicación: -34.637167,-58.462984
Mensajes: 5.148
Antigüedad: 20 años
Puntos: 834
Respuesta: Cerrar tag de HTML con Javascript

Podrías usar regExp:
Código:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>test</title>
</head>

<body>
<div id="contenedor"><a></a><pre class="caja">lalala</pre></div>

<script>
re=/\<a\>\<\/a\>/gi;
var test=document.getElementById('contenedor').innerHTML=document.getElementById('contenedor').innerHTML.replace(re,'</a>');
alert(test);
</script>
</body>
</html>

Última edición por Panino5001; 25/08/2008 a las 08:18
  #4 (permalink)  
Antiguo 25/08/2008, 08:06
Avatar de foreverOdd  
Fecha de Ingreso: noviembre-2007
Ubicación: Caracas
Mensajes: 489
Antigüedad: 16 años, 6 meses
Puntos: 14
Respuesta: Cerrar tag de HTML con Javascript

trata con algo asi:

var enlace= document.createElement('a');
var textoEnlace = document.createTextNode('Lo que va dentor del enlace');
enlace.appendChild(textoEnlace);
document.getElementById('elemento').appendChild(en lace);

Suerte
__________________
My path is lit by my own fire, I only go where I desire
  #5 (permalink)  
Antiguo 25/08/2008, 08:09
Avatar de Panino5001
Me alejo de Omelas
 
Fecha de Ingreso: mayo-2004
Ubicación: -34.637167,-58.462984
Mensajes: 5.148
Antigüedad: 20 años
Puntos: 834
Respuesta: Cerrar tag de HTML con Javascript

Cita:
Iniciado por foreverOdd Ver Mensaje
trata con algo asi:

var enlace= document.createElement('a');
var textoEnlace = document.createTextNode('Lo que va dentor del enlace');
enlace.appendChild(textoEnlace);
document.getElementById('elemento').appendChild(en lace);

Suerte
Eso es casi lo que esta haciendo, sólo que usando xPath en lugar de DOM
  #6 (permalink)  
Antiguo 25/08/2008, 08:15
Avatar de foreverOdd  
Fecha de Ingreso: noviembre-2007
Ubicación: Caracas
Mensajes: 489
Antigüedad: 16 años, 6 meses
Puntos: 14
Respuesta: Cerrar tag de HTML con Javascript

Solo le quice hacer ver que el enlace lo esta agragando antes del contenido que desea, cuando en contenido lo debe insertar dentro del enace
Pero gracias por la correcion
__________________
My path is lit by my own fire, I only go where I desire
  #7 (permalink)  
Antiguo 25/08/2008, 08:30
s0b
 
Fecha de Ingreso: mayo-2007
Mensajes: 8
Antigüedad: 17 años
Puntos: 0
Respuesta: Cerrar tag de HTML con Javascript

Perdonad la confusion, estoy aprendiendo Javascript y para ello me estoy poniendo retos (para hacermelo mas ameno). Este ejemplo trata de modificar una pagina en HTML para posteriormente modificarla localmente haciendo un script para Greasemonkey (el addon de Firefox).

En dicha pagina hay un enlace mal puesto antes del <pre>, por lo que tengo que identificar el <pre> y añadir el tag de cerrar enlace antes de que el <pre> empieze, ya que sino su contenido estara enlazado. Algo asi:

Código HTML:
<head>
<title>Prueba></title>
</head
<body>
<a href="http://google.es">Enlace
<pre class="caja">lalala</pre>
</body> 
El resultado que busco y que aun no he sido capaz de conseguir es añadir el </a> antes del pre.

Código HTML:
<head>
<title>Prueba></title>
</head
<body>
<a href="http://google.es">Enlace</a>
<pre class="caja">lalala</pre>
</body> 
Con el codigo que he puesto en el primer post soy capaz de identificar el <pre> por su clase, pero no puedo añadir solo el </a>.

Espero haber aclarado un poco el proposito. Y muchisimas gracias por las respuestas.
  #8 (permalink)  
Antiguo 25/08/2008, 08:37
Avatar de foreverOdd  
Fecha de Ingreso: noviembre-2007
Ubicación: Caracas
Mensajes: 489
Antigüedad: 16 años, 6 meses
Puntos: 14
Respuesta: Cerrar tag de HTML con Javascript

Hola

como le estbas haciendo al principio es la solucion que buscas, solo que debes "llenar" el enlace, de lo contrario no veras nada porque <a></a> no arroja ninguna salida
quiza asi te sirva:

fin = document.createElement('a');

textoEnlace = document.createTextNode('Lo que va dentro del enlace');
fin.appendChild(textoEnlace);
fin.href="http://google.es";
estepre.parentNode.insertBefore(fin, estepre);
__________________
My path is lit by my own fire, I only go where I desire
  #9 (permalink)  
Antiguo 25/08/2008, 17:51
s0b
 
Fecha de Ingreso: mayo-2007
Mensajes: 8
Antigüedad: 17 años
Puntos: 0
Respuesta: Cerrar tag de HTML con Javascript

En primer lugar, de nuevo, dar las gracias a todos los que habeis respondido.

Ya he conseguido solucionarlo, de una forma muy enrevesada pero funciona perfectamente, he añadido un ondblclick al enlace:

Código:
var todosa, estea, todospre, estepre, estepre2;

todosa = document.evaluate(
    "//a[@ondblclick]",
    document,
    null,
    XPathResult.UNORDERED_NODE_SNAPSHOT_TYPE,
    null);

todospre = document.evaluate(
    "//pre[@class='caja']",
    document,
    null,
    XPathResult.UNORDERED_NODE_SNAPSHOT_TYPE,
    null);
    
for (var i = 0; i < todosa.snapshotLength; i++) {
    estea = todosa.snapshotItem(i);
    estepre = todospre.snapshotItem(i);
  
  	estepre2 = document.createElement("div");
	estepre2.appendChild(estepre);
    estea.parentNode.insertBefore(estepre2, estea);

    estea.parentNode.removeChild(estea);
}
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 23:05.