2014-10-02 35 views
-1

我已经知道如何在特定元素的内容加载到我的网页:如何使用load()加载变量中元素的内容?

$('#idDetails').load('formElements.html .expirationDate'); 

我的问题是我需要这个存储到一个变量。到目前为止我没有找到解决方案。 我该如何改变它,以便它加载到给定的变量,而不是div“idDetails”? 我可以加载()到一个隐藏的动态生成的div,然后用.html()放入一个变量(然后销毁div),虽然我确信有一个更漂亮的解决方案..

有谁知道如何做到这一点? 感谢您的帮助

+0

http://api.jquery.com/jQuery.ajax – 2014-10-02 17:55:39

+0

请问这样做的原因是什么? – 2014-10-02 17:55:41

回答

1

使用$.get而不是$.load并将响应转化为成功回调中的变量。

$.get("formElements.html", function(data) { 
    var targetContent = $(data).find('.expirationDate').html() 
}); 
+1

谢谢,但在我的“expirationDate”在这里? – Slrg 2014-10-02 17:59:02

+0

@ArnaudAd:你用'.expirationDate'做了什么?请在问题中解释。 – mithunsatheesh 2014-10-02 18:00:24

+1

@mithunsatheesh:'.load()'的文档中解释了这个问题:http://api.jquery.com/load/ – David 2014-10-02 18:00:55

-2

个人而言,我会使用localStorage的。如果你把你的变量放到localStorage中,那么你可以随时取出它。这将帮助您使用localStorage;

http://www.w3schools.com/html/html5_webstorage.asp

+1

你似乎误解了这个问题。 OP不会询问将页面范围之外的值保留在哪里。 OP询问如何将AJAX请求的响应存储到页面上的变量中。 – David 2014-10-02 18:11:17

0

好,the .load() function itself没有做任何事情非常复杂。您可以模仿它正在做什么来获取响应,并将结果存储在变量中,而不是将其设置为元素。

例如,如果它这样做的AJAX done处理程序:

self.html(selector ? 
    jQuery("<div>").append(jQuery.parseHTML(responseText)).find(selector) 
    responseText); 

你可能只是这样做:

someVariable = selector ? 
    jQuery("<div>").append(jQuery.parseHTML(responseText)).find(selector) 
    responseText; 

需要注意的是,基本上,jQuery是做的正是你的建议作为一个选项...

我可以加载()的东西到一个隐藏的div在飞行中生成,然后ge t它的内容与.html()放入一个变量

它只是没有将该div放入DOM中,而是将其保留在内存中。 (并且完全是为了执行针对DOM对象的.find(),我想象一下。)

相关问题