2012-03-31 2 views
42

Je sais que je peux charger en html dans un div avec:Comment charger html dans une variable avec jquery

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

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

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

Toute aide est super.

Je voudrais faire une boucle bien que 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]); 
       } 
      } 
     } 
    } 
}; 

Répondre

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

Sous jQuery va lancer une demande de paiement ajax qui se déclenche à l'URL donnée. Il essaie également de deviner intelligemment quelles données vont être reçues (si elles sont valides, vous n'avez pas besoin de spécifier). Si vous avez besoin d'obtenir un autre type de données il suffit de passer que 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: .get()

+0

Cela fonctionne pour moi, mais montre une erreur dans la console après le chargement: "Uncaught SyntaxError: Jeton inattendu <". Une idée pourquoi? –

26

Vous pouvez aussi créer sur elle un élément en mémoire et utiliser load():

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 que vous voulez charger à l'aide d'un sélecteur (#somediv)

1

Lors de la création d'un nouvel élément est une option, vous pouvez également cloner n'importe quel élément. Ceci copie tous les attributs et les valeurs de l'ancien nœud, comme il est dit, 'exact clone'. Dans le cas où vous ne souhaitez copier qu'une partie particulière du code html, vous avez également la possibilité de remplir tous les contenus de la hiérarchie d'éléments particuliers (c'est-à-dire tous les enfants inclus) depuis la page récupérée.

Par exemple, si la hiérarchie est -

<div id='mydiv'> 
    <div> 
     <span> 
     ...</span> 
    </div> 
</div> 

//... 

var oldElement = document.getElementById('mydiv'); 
var newElement = oldElement.cloneNode(true); 

/* #selector selects only that particular section & the '> *' enables to copy all of the child nodes under the parent #selector 
Replace URL with the required value 
function specification is optional... */ 

jQuery(newElement).load(URL+'#selector > *'[,function(response, status, xhr){}]); 

//... 

vous pouvez maintenant traiter la programatically newElement variables que vous le souhaitez (en utilisant javascript natif aussi bien, car il est un élément natif).

1
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); 
Questions connexes