jQuery加载到变量

我需要从jQuery load到变量的插入结果。

在页面ajax.html上使用id测试的元素的内容。

$('#result').load('ajax.html #test'); 

 $(document).ready(function(){ $('#result').load('/ p#name', function(result) { var obj = $(this).find('p#name'), html = obj.html(); obj.css({'font-size':40}); $(this).append($('
').text(html)); }); });

关于JSFiddle的例子http://jsfiddle.net/kuroir/stD94/

尝试使用jQuery.get

例如。

 $.get('ajax.html', function (data) { data = $(data).find('#test'); // data contains your html }); 
 $('#result').load('ajax.html #test', function(result) { var variable = $('#result').html(); }); 

或多或少做与上面相同但更简单:

 var dt; $.get("ajax.html", function (data) { dt = data; // data contains your html }); 

我在所有stackoverflow线程上发布此消息,这些线程请求帮助将数据从jQuery ajax方法填充到变量中,而不是填充到HTML元素中,因为我很难找到可行的解决方案。 我终于找到了一个解决方案,我只是想与任何正在努力解决这个问题的人分享。

我的问题是我真的很挣扎着在事件的“document.ready”阶段将jQuery ajax的结果变成我的变量。

我的测试表明,当用户在页面加载后触发选择框的“onchange”事件时,jQuery的ajax会加载到我的变量中,但是当页面首次加载时数据不会提供变量。 但我不想在我的“onchange”事件中触发任何ajax; 我希望在页面加载时使用ajax数据提供的变量来处理工作。 当用户触发“onchange”事件时, 变量用于动态更改数据。 这样,当用户与表单交互时,没有lag / ajax; 页面加载后,数据可用。

我尝试了很多很多不同的方法,但最后,我需要的代码就是这个stackoverflow线程: JQuery – 将ajax响应存储到全局变量中

我用Charles Guilbert的回答。 使用他的答案,我能够将数据输入我的变量,即使我的页面首次加载也是如此。

这是工作脚本的一个例子 – 希望它可以帮助某人!

 jQuery.extend ( { getValues: function(url) { var result = null; $.ajax( { url: url, type: 'get', dataType: 'html', async: false, cache: false, success: function(data) { result = data; } } ); return result; } } ); // Option List 1, when "Cats" is selected elsewhere optList1_Cats += $.getValues("/MyData.aspx?iListNum=1&sVal=cats"); // Option List 1, when "Dogs" is selected elsewhere optList1_Dogs += $.getValues("/MyData.aspx?iListNum=1&sVal=dogs"); // Option List 2, when "Cats" is selected elsewhere optList2_Cats += $.getValues("/MyData.aspx?iListNum=2&sVal=cats"); // Option List 2, when "Dogs" is selected elsewhere optList2_Dogs += $.getValues("/MyData.aspx?iListNum=2&sVal=dogs"); 

试试$.ajax$.load只是一个捷径。

如果你想要精确加载func,试试这个:

 var temp; $(new Object()).load('YourUrl', { param: "smth" }, function(data){ $('#element').prepend(data); //if you want prepend/append result to some html temp = data; //if you want put to variable }); 
 $('#submit').click(function(){ var taval = $("#message").val(); $("#showcomment").load('comments.php', {commentval:taval}) }); 

使用setTimeout