Foros del Web » Programando para Internet » Jquery »

Reemplazar hipervinculos de texto html

Estas en el tema de Reemplazar hipervinculos de texto html en el foro de Jquery en Foros del Web. buenas gente, espero puedan ayudarme, tengo un texto html almacenado en una variable, (el texto varia dinamicamente), lo que quiero hacer es una funcion que ...
  #1 (permalink)  
Antiguo 11/10/2012, 10:18
Avatar de NSD
NSD
Colaborador
 
Fecha de Ingreso: mayo-2012
Ubicación: Somewhere
Mensajes: 1.332
Antigüedad: 11 años, 11 meses
Puntos: 320
Pregunta Reemplazar hipervinculos de texto html

buenas gente, espero puedan ayudarme, tengo un texto html almacenado en una variable, (el texto varia dinamicamente), lo que quiero hacer es una funcion que reemplace los hipervinculos del texto de la variable por etiquetas <span> eliminado todos los atributos que tenga.

Código Javascript:
Ver original
  1. function quitalink(Html){
  2.     Html = Html.replace('<a' , '<span');
  3.     Html = Html.replace('</a' , '</span');
  4. return Html;
  5. }
  6.  
  7. Html = $('#Contenido').html();
  8. NHtml = quitalink(Html);

eso funciona pero no quita los atributos y principalmente lo que nesesito es dejar la etiqueta "pelada".

alguna sugerensia? estoy utilizando jquery asi que tambien puede servirme algo por ese lado

muchas gracias.
__________________
Maratón de desafíos PHP Junio - Agosto 2015 en FDW | Reglamento - Desafios
  #2 (permalink)  
Antiguo 11/10/2012, 10:35
Avatar de Dradi7  
Fecha de Ingreso: junio-2008
Ubicación: Peru - Lima
Mensajes: 1.518
Antigüedad: 15 años, 10 meses
Puntos: 220
Respuesta: Reemplazar hipervinculos de texto html

Puedes hacer esto

Código Javascript:
Ver original
  1. $("#Contenido").each(function() {
  2.  
  3.   var attributes = $.map(this.attributes, function(item) {
  4.     return item.name;
  5.   });
  6.  
  7.   var link = $(this);
  8.   $.each(attributes, function(i, item) {
  9.     link.removeAttr(item);
  10.   });
  11. });
__________________
La clave de todo triunfador es eliminar todas sus excusas y sus limitaciones
  #3 (permalink)  
Antiguo 11/10/2012, 11:09
Avatar de NSD
NSD
Colaborador
 
Fecha de Ingreso: mayo-2012
Ubicación: Somewhere
Mensajes: 1.332
Antigüedad: 11 años, 11 meses
Puntos: 320
Respuesta: Reemplazar hipervinculos de texto html

hola Dradi7 gracias por tu respuesta, tu codigo lo que que hace es eliminar todos los atributos del dom, y (si bien es masomenos lo que nesesito) el dom no tendria que modificarse en ningun momento, el resultado tendria que salir en una variable como string, prove con esto:
Código Javascript:
Ver original
  1. function printPDF(){
  2.                 $("#Contenido").each(function() {
  3.                   var attributes = $.map(this.attributes, function(item) {
  4.                     return item.name;
  5.                   });
  6.                  
  7.                   var link = $(this);
  8.                   $.each(attributes, function(i, item) {
  9.                     link.removeAttr(item);
  10.                   });
  11.                 });
  12.                 //Html = $("#Contenido").html();
  13.                 //Html = Html.replace('<a' , '<span');
  14.                 //Html = Html.replace('</a' , '</span');
  15.                 Html = $("#Contenido").html();
  16.                    
  17.             }
pero no anda, hay alguna forma de que tu script trabaje sobre Html = $("#Contenido").html(); en lugar de trabajar sobre el DOM?
__________________
Maratón de desafíos PHP Junio - Agosto 2015 en FDW | Reglamento - Desafios
  #4 (permalink)  
Antiguo 11/10/2012, 11:20
Avatar de Dradi7  
Fecha de Ingreso: junio-2008
Ubicación: Peru - Lima
Mensajes: 1.518
Antigüedad: 15 años, 10 meses
Puntos: 220
Respuesta: Reemplazar hipervinculos de texto html

Estas equivocado este codigo lo unico que hace es eliminar solamente los atributos que se encuentran dentro de elemento el cual lo estoy recorriendo

Saludos
__________________
La clave de todo triunfador es eliminar todas sus excusas y sus limitaciones
  #5 (permalink)  
Antiguo 11/10/2012, 11:22
Avatar de Dradi7  
Fecha de Ingreso: junio-2008
Ubicación: Peru - Lima
Mensajes: 1.518
Antigüedad: 15 años, 10 meses
Puntos: 220
Respuesta: Reemplazar hipervinculos de texto html

Otra manera mas facil seria haciendo esto

Código Javascript:
Ver original
  1. $('#myElement').replaceWith(function(){
  2.     return $("<span />", {html: $(this).html()});
  3. });

Esta es otra manera, con esto estas mejorando un poco el rendimiento en el caso que los elementos de código tiene otros hijos HTML

Código Javascript:
Ver original
  1. $('a').replaceWith(function(){
  2.     return $("<span />").append($(this).contents());
  3. });

Saludos
__________________
La clave de todo triunfador es eliminar todas sus excusas y sus limitaciones
  #6 (permalink)  
Antiguo 11/10/2012, 11:31
Avatar de NSD
NSD
Colaborador
 
Fecha de Ingreso: mayo-2012
Ubicación: Somewhere
Mensajes: 1.332
Antigüedad: 11 años, 11 meses
Puntos: 320
Respuesta: Reemplazar hipervinculos de texto html

Cita:
Estas equivocado este codigo lo unico que hace es eliminar solamente los atributos que se encuentran dentro de elemento el cual lo estoy recorriendo
claro, pero lo haces sobre el DOM a ese prosedimiento, igual creo que me exprese mal cuando plantie el problema, tengo este codigo html por ejemplo:

Código HTML:
Ver original
  1.     <head>
  2.         <Link Href="EstiloPDF.css" Rel="Stylesheet" Type="text/css" Media="all" />
  3.     </head>
  4.     <body>
  5.         <div ID="contenido">
  6.         <table>
  7.             <thead>
  8.                 <tr>
  9.                     <th data-hts="ON">Nombre</th>
  10.                     <th data-hts="ON">Estado</th>
  11.                     <th data-hts="OFF">Acciones</th>
  12.                 </tr>
  13.             </thead>
  14.             <tbody>
  15.                
  16.                 <tr class="TS2">
  17.                     <td>
  18.                         <a onclick="CargarURL('Motor-Caja-Diaria.php?ACT=GTM&amp;IDT=4','Contenido')"><img src="images/ED1.png">Editar</a>
  19.                     </td>
  20.                 </tr>
  21.                 <tr class="TS1">
  22.                     <td>
  23.                         <a onclick="CargarURL('Motor-Caja-Diaria.php?ACT=GTM&amp;IDT=5','Contenido')"><img src="images/ED1.png">Editar</a>
  24.                     </td>
  25.                 </tr>
  26.                 <tr class="TS2">
  27.                     <td>
  28.                         <a onclick="CargarURL('Motor-Caja-Diaria.php?ACT=GTM&amp;IDT=6','Contenido')"><img src="images/ED1.png">Editar</a>
  29.                     </td>
  30.                 </tr>
  31.                 <tr class="TS1">
  32.                     <td>
  33.                         <a onclick="CargarURL('Motor-Caja-Diaria.php?ACT=GTM&amp;IDT=8','Contenido')"><img src="images/ED1.png">Editar</a>
  34.                     </td>
  35.                 </tr>
  36.             </tbody>
  37.         </table>
  38.         </div>
  39.     </body>
  40. </html>

y lo que quiero es un STRING en una variable con ese mismo texto pero sin los atributos de los hipervinculos.

con tu codigo (no digo que no ande porque anda bien, solo que no es esactamente lo que nesesito) cambia las propiedades sobre lo que esta en pantalla no sobre la variable.
__________________
Maratón de desafíos PHP Junio - Agosto 2015 en FDW | Reglamento - Desafios
  #7 (permalink)  
Antiguo 11/10/2012, 11:38
Avatar de Dradi7  
Fecha de Ingreso: junio-2008
Ubicación: Peru - Lima
Mensajes: 1.518
Antigüedad: 15 años, 10 meses
Puntos: 220
Respuesta: Reemplazar hipervinculos de texto html

Revisa los últimos ejemplos que te puse, estos deben funcionar

Saludos
__________________
La clave de todo triunfador es eliminar todas sus excusas y sus limitaciones
  #8 (permalink)  
Antiguo 11/10/2012, 12:05
Avatar de NSD
NSD
Colaborador
 
Fecha de Ingreso: mayo-2012
Ubicación: Somewhere
Mensajes: 1.332
Antigüedad: 11 años, 11 meses
Puntos: 320
Respuesta: Reemplazar hipervinculos de texto html

Cita:
Revisa los últimos ejemplos que te puse, estos deben funcionar
no los habia visto cuando comente disculpa.

lo hise funcionar con uno de los que me pasaste pero para lograr mi proposito tube que clonar primero el nodo, hacerle las operaciones y luego eliminar la copia.

funcionar funciona, pero nose como se comportara cuando tenga 700 filas en la tabala :/

muchas gracias por tu ayuda.

Código Javascript:
Ver original
  1. $("#Contenido").clone().appendTo('#ZonaPDF');
  2.                 $('#ZonaPDF #Contenido a').replaceWith(function(){
  3.                     return $(this).contents();
  4.                 });
  5.                 Html = $('#ZonaPDF #Contenido').html();
  6.                 $('#ZonaPDF #Contenido').remove();
__________________
Maratón de desafíos PHP Junio - Agosto 2015 en FDW | Reglamento - Desafios

Etiquetas: funcion, hipervinculos, html, reemplazar
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 08:43.