【发布时间】:2011-06-01 15:15:51
【问题描述】:
我需要将 jQuery 加载的结果插入到变量中。
ajax.html 页面上带有 id 测试的元素的内容。
$('#result').load('ajax.html #test');
【问题讨论】:
我需要将 jQuery 加载的结果插入到变量中。
ajax.html 页面上带有 id 测试的元素的内容。
$('#result').load('ajax.html #test');
【问题讨论】:
尝试改用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();
});
【讨论】:
#test 内容相比,它的代码更少,但它会对 #result 进行不必要的加载。
#result 中,除此之外将其分配给一个变量。如果不是这种情况,显然使用$.ajax() 会更好。
或多或少与上述相同,但更简单:
var dt;
$.get("ajax.html", function (data) {
dt = data;
// data contains your html
});
【讨论】:
$(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($('<div>').text(html));
});
});
JSFiddle 上的示例http://jsfiddle.net/kuroir/stD94/
【讨论】:
我在所有寻求帮助的 stackoverflow 线程上发布此消息,以将 jQuery ajax 方法中的数据塞入变量而不是 HTML 元素中,因为我很难找到可行的解决方案。我终于找到了解决方案,我只想与任何对此感到困难的人分享。
我的问题是,在事件的“document.ready”阶段,我很难将 jQuery ajax 的结果放入我的变量中。
我的测试表明,当用户在页面加载后触发选择框的“onchange”事件时,jQuery 的 ajax 会加载到我的变量中,但在页面首次加载时数据不会提供变量。但我不想在我的“onchange”事件上触发任何 ajax;我希望 变量 在页面加载时提供 ajax 数据来处理这项工作。 变量 用于在用户触发“onchange”事件时动态更改数据。这种方式在用户与表单交互时没有延迟/ajax;页面加载后数据即可使用。
我尝试了很多很多很多不同的方法,但最后我需要的代码在这个 stackoverflow 线程上:JQuery - Storing ajax response into global variable
我使用了 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 只是一个捷径。
【讨论】:
如果你想要完全加载函数,试试这个:
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
<script>
my_var=$('#hidden').load('new.html');
setTimeout(function(){
my_var=my_var.html();
alert(my_var);
}, 500);
</script>
【讨论】: