2009-10-27 15 views
10

Estoy intentando cargar un elemento DIV desde una página externa en mi página actual usando la función Ajax/jQuery.ajax. Si bien he podido cargar una página externa completa, parece que no puedo cargar solo elemento DIV.Use la función Ajax() en Jquery para cargar la PARTE de una página externa en div

Aquí está mi código:

$("a").click(function() { 
    /* grabs URL from HREF attribute then adds an */ 
    /* ID from the DIV I want to grab data from */ 
    var myUrl = $(this).attr("href") + "#external-div"; 
    $.ajax({ 
    url: myUrl, 
    success: function(html) { 
    /* loads external content into current div element */ 
    $("#current-div").append(html); 
    } 
    }); 
    return false; 
}); 

Se agarra el atributo HREF sin ningún problema, pero no va a añadir "# externa-div" a la URL. ¿Algunas ideas?

¡Muchas gracias!

~ Jared Crossley

+0

La url que está solicitando es obtener "# external-div", pero cualquier backend con el que se ponga en contacto no entiende que solo quiere ese div. – wambotron

Respuesta

11

Si quisiera volver sólo que DIV se puede utilizar el método de jQuery load para cargar simplemente el contenido devuelto en su #current-div ala

$("a").click(function() { 
    /* grabs URL from HREF attribute then adds an */ 
    /* ID from the DIV I want to grab data from */ 
    var myUrl = $(this).attr("href") + " #external-div"; 
    $("#current-div").load(myUrl); 
    return false; 
}); 

Tome un vistazo a la jQuery Ajax/load documentation

+0

Hola Quintin, Gracias por su rápida respuesta. Preferiría no utilizar el método de carga, ya que limita el tipo de encadenamiento de efectos y gestión de datos que puedo hacer, pero en este momento es la única opción de la que tengo conocimiento. Gracias nuevamente por su respuesta. ¿Alguien más sabe si la función Ajax/jQuery.ajax me permitirá cargar un div externo? – user196986

+0

Eso no es del todo cierto, todavía puede proporcionar una devolución de llamada para el método de carga y aplicar el encadenamiento allí, el escenario (a través del código) que se describe parece ser más allá de lo que la carga puede hacer. ¿Hay algo en particular aparte de lo que publicaste que estás tratando de lograr? –

+0

Buen punto. Supongo que mi pregunta no fue del todo completa. El método de carga funciona bien, pero hay otros dos escenarios en los que puedo encontrarme. Escenario 1) Es posible que necesite cargar datos XML (en lugar de HTML) y/o hacer una POST a un formulario. Escenario 2) Para el ejemplo anterior, me gustaría desvanecer el contenido actual, cargar el nuevo contenido y luego desvanecerme en el contenido nuevo. Sin embargo, tan pronto como llamo al método load(), instantáneamente carga el nuevo contenido en lugar de esperar a que el contenido anterior se desvanezca por completo. Mis disculpas por no ser más claro. – user196986

Cuestiones relacionadas