54 votes

Comment charger du html dans une variable avec jquery

Je sais que je peux charger en html dans un div avec :

 $("#my_div").load("http://www.mypage.com");

mais je veux faire est de charger du html dans une variable comme :

 my_var = load("http://www.mypage.com");

Toute aide est grande.

Je voudrais boucler certains éléments comme :

 HLS.functions.LoadSideModules = function() {
    HLS.sideModuleContent = new Object();
    for(var i = 0; i < HLS.currentModuleConfig.POLICIES.POLICY.length; i++) {
        for(var y = 0; y < HLS.currentModuleConfig.POLICIES.POLICY[i].PAGES.PAGE.length; y++) {
            for(var POS in HLS.currentModuleConfig.POLICIES.POLICY[i].PAGES.PAGE[y]) {
                var item = HLS.currentModuleConfig.POLICIES.POLICY[i].PAGES.PAGE[y][POS];
                if(!HLS.sideModuleContent[item]) {
                    HLS.sideModuleContent[item] = j.get(HLS.config.K2GETMODULE + HLS.currentModuleConfig.POLICIES.POLICY[i].PAGES.PAGE[y][POS]);
                }
            }
        }
    }
};

84voto

jAndy Points 93076
$.get("http://www.mypage.com", function( my_var ) {
    // my_var contains whatever that request returned
});

En dessous, jQuery lancera une requête ajax qui se déclenchera sur l'URL donnée. Il essaie également de deviner intelligemment quelles données vont être reçues (s'il s'agit d'un code HTML valide, vous n'avez pas besoin de le spécifier). Si vous avez besoin d'obtenir un autre type de données, transmettez-le simplement comme dernier argument, par exemple

 $.get("http://www.mypage.com", function( my_var ) {
    // my_var contains whatever that request returned
}, 'html');  // or 'text', 'xml', 'more'

Référence : http://api.jquery.com/jQuery.get/

38voto

gang Points 632

Vous pouvez également créer un élément en mémoire et utiliser load() dessus :

 var $div = $('<div>');

$div.load('index.php #somediv', function(){
    // now $(this) contains #somediv
});

L'avantage est que vous pouvez spécifier quelle partie de index.php vous souhaitez charger en utilisant un sélecteur ( #somediv )

2voto

Ahmed Elazazy Points 326
    function includeHTML_callBack(result){
        var my_var = result;
    }

    function includeHTML(link, callBack) {
            var xhttp = new XMLHttpRequest();
            xhttp.onreadystatechange = function() {
            if (this.readyState == 4 && this.status == 200) {
                callBack(this.responseText);
            }
          }      
          xhttp.open("GET", link, true);
          xhttp.send();
          return;
    }

    includeHTML("http://www.mypage.com", includeHTML_callBack);

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X