2012-03-31 16 views
42

Tôi biết tôi có thể tải trong html vào một div với:Làm thế nào để nạp html vào một biến với jquery

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

nhưng tôi muốn làm là tải html vào một biến như:

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

Mọi trợ giúp đều tuyệt vời.

Tôi muốn để lặp mặc dù một số mặt hàng như:

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]); 
       } 
      } 
     } 
    } 
}; 

Trả lời

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

Bên dưới jQuery sẽ tung ra một yêu cầu ajax bắn những viên đạn vào URL nhất định. Nó cũng cố gắng để thông minh đoán dữ liệu nào sẽ được nhận (nếu đó là html hợp lệ bạn không cần phải chỉ định). Nếu bạn cần phải nhận được một kiểu dữ liệu chỉ cần vượt qua trong lập luận như trước, ví dụ

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

tham khảo: .get()

+0

Nó hoạt động cho tôi, nhưng hiển thị lỗi trong bảng điều khiển sau khi tải: "Cú pháp không mong đợi cú pháp: Mã thông báo không mong muốn <". Bất kỳ ý tưởng tại sao? –

26

Bạn cũng có thể tạo ra một yếu tố trong bộ nhớ và sử dụng tải() trên đó:

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

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

Ưu điểm là bạn có thể chỉ định một phần của index.php bạn muốn tải bằng cách sử dụng một selector (#somediv)

1

trong khi tạo một nhân tố mới là một tùy chọn, bạn cũng có thể sao chép bất kỳ phần tử nào. Điều này sao chép tất cả các thuộc tính và các giá trị của nút cũ, như nó nói, 'bản sao chính xác'.

Trong trường hợp bạn muốn chỉ một phần cụ thể của html được sao chép, điều này cũng cung cấp tính linh hoạt để lấp đầy tất cả nội dung trong phân cấp phần tử cụ thể (tức là, với tất cả trẻ em được bao gồm) từ trang được tìm nạp.

Ví dụ, nếu hệ thống phân cấp là -

<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){}]); 

//... 

Bây giờ bạn programatically có thể xử lý newElement biến như bạn muốn (sử dụng javascript mẹ đẻ là tốt, vì nó là một yếu tố bản địa).

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); 
Các vấn đề liên quan