如何使用load()加载变量中元素的内容?
我已经知道如何在特定元素的内容加载到我的网页:如何使用load()加载变量中元素的内容?
$('#idDetails').load('formElements.html .expirationDate');
我的问题是我需要这个存储到一个变量。到目前为止我没有找到解决方案。 我该如何改变它,以便它加载到给定的变量,而不是div“idDetails”? 我可以加载()到一个隐藏的动态生成的div,然后用.html()放入一个变量(然后销毁div),虽然我确信有一个更漂亮的解决方案..
有谁知道如何做到这一点? 感谢您的帮助
使用$.get
而不是$.load
并将响应转化为成功回调中的变量。
像
$.get("formElements.html", function(data) {
var targetContent = $(data).find('.expirationDate').html()
});
谢谢,但在我的“expirationDate”在这里? – Slrg 2014-10-02 17:59:02
@ArnaudAd:你用'.expirationDate'做了什么?请在问题中解释。 – mithunsatheesh 2014-10-02 18:00:24
@mithunsatheesh:'.load()'的文档中解释了这个问题:http://api.jquery.com/load/ – David 2014-10-02 18:00:55
个人而言,我会使用localStorage的。如果你把你的变量放到localStorage中,那么你可以随时取出它。这将帮助您使用localStorage;
你似乎误解了这个问题。 OP不会询问将页面范围之外的值保留在哪里。 OP询问如何将AJAX请求的响应存储到页面上的变量中。 – David 2014-10-02 18:11:17
好,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()
,我想象一下。)
http://api.jquery.com/jQuery.ajax – 2014-10-02 17:55:39
请问这样做的原因是什么? – 2014-10-02 17:55:41