Foros del Web » Programando para Internet » Jquery »

$.ajax JQuery obtener elemento según ID

Estas en el tema de $.ajax JQuery obtener elemento según ID en el foro de Jquery en Foros del Web. Hola comunidad. Me veo en la obligación de crear un sitio web dinámico usando JQuery. Pero tengo un problema al realizar cargas AJAX: Si usamos ...
  #1 (permalink)  
Antiguo 04/08/2010, 00:53
 
Fecha de Ingreso: diciembre-2008
Mensajes: 2
Antigüedad: 16 años
Puntos: 0
$.ajax JQuery obtener elemento según ID

Hola comunidad.
Me veo en la obligación de crear un sitio web dinámico usando JQuery. Pero tengo un problema al realizar cargas AJAX:

Si usamos la función $.load anda perfecto, es fácil y funciona bien. El problema surge al intentar cargar un contenido con ID específico, ya que no carga los scripts contenidos. Todo funciona bien si cargamos el sitio completo:
Código:
$('#idDiv').load("index2.html");
de esta forma carga los scripts y todo correctamente, pero al realizar la consulta asignando la ID específica del sitio a cargar:
Código:
$('#idDiv').load("index2.html #idDiv");
este no carga los scripts.

He intentado usar $.ajax(). Pero el resultado es el mismo, además con esta función no puedo cargar un div con ID específica o no se como hacerlo.

Se me ocurre lo siguiente:
Si usamos $.ajax() de JQuery e indicamos la URL a cargar, usamos success para indicar el comportamiento que realizará la operación:

Código:
$.ajax(
{    url: "index2.html",
      success: function(data){
          $('#idDiv').html(data);
      }
});
De esta forma cargamos el sitio completo en #idDiv al igual que $.load() sin indicar #id. Donde los script funcionan correctamente, pero no hemos podido elegir un #id o .class específico.
Pero según me he podido percatar, la variable "data" que retorna la función es un string o cadena que contiene la estructura del sitio de destino, y se me ocurre poder extraer el #id desde esa variable resultante.
He tratado de pasar la variable data a Element, sin resultado.
Estoy casi seguro de que así funcionaría, si es que no hay otra forma mas óptima de hacerlo.
El punto es como hacer una especie de getElementByID(); para esa variable de tipo String, o si es posible transformarla y hacer el proceso de extracción y luego volverla a String o dejarla tal cual para cargarla al sitio Nº 1.

Sé que este problema se evita si desde el sitio Nº 1 cargamos todos los JavaScript, pero hay veces en donde no es posible, como por ejemplo al usar ReCaptcha, donde su API entrega el JavaScript y no quero manipular el código fuente.

Espero alguien con mas experiencia tenga la solución.
Saludos.
  #2 (permalink)  
Antiguo 04/08/2010, 02:18
Avatar de caricatos
Moderador
 
Fecha de Ingreso: abril-2002
Ubicación: Torremolinos (Málaga)
Mensajes: 19.607
Antigüedad: 22 años, 8 meses
Puntos: 1284
Tema movido desde AJAX
__________________
Por favor:
No hagan preguntas de temas de foros en mensajes privados... no las respondo
  #3 (permalink)  
Antiguo 04/08/2010, 05:32
 
Fecha de Ingreso: diciembre-2009
Ubicación: Misiones
Mensajes: 867
Antigüedad: 15 años
Puntos: 65
Respuesta: $.ajax JQuery obtener elemento según ID

tenés código js en el html o enlaces a un archivo js?

no te sirve esto?
http://api.jquery.com/jQuery.getScript/
  #4 (permalink)  
Antiguo 04/08/2010, 19:03
 
Fecha de Ingreso: diciembre-2008
Mensajes: 2
Antigüedad: 16 años
Puntos: 0
Respuesta: $.ajax JQuery obtener elemento según ID

El problema presentado tiene que ver con los script que no pueden ser almacenados en archivos externos, por ejemplo al querer incluir páginas que contengan códigos como los de Google Adsense o ReCaptcha.
Gracias por tu respuesta.
  #5 (permalink)  
Antiguo 06/05/2011, 17:49
 
Fecha de Ingreso: febrero-2011
Mensajes: 11
Antigüedad: 13 años, 10 meses
Puntos: 0
Respuesta: $.ajax JQuery obtener elemento según ID

pudiste solucionarlo ami me pasa lo mismo

Etiquetas: ajax
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 18:02.