Мне нужно вставить результат загрузки jQuery в переменную.
Содержимое элемента с тегом id на странице ajax.html.
$('#result').load('ajax.html #test');
Мне нужно вставить результат загрузки jQuery в переменную.
Содержимое элемента с тегом id на странице ajax.html.
$('#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($('<div>').text(html));
});
});
Пример в JSFiddle http://jsfiddle.net/kuroir/stD94/
Попробуйте вместо jQuery.get
.
Eg.
$.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, потому что мне было трудно найти решение, которое будет работать. Я, наконец, нашел решение, и я просто хочу поделиться с кем-то, кто с трудом справляется с этим.
Моя проблема заключалась в том, что я действительно боролся с получением результатов jQuery ajax в мои переменные на этапе document.ready событий.
Мои тесты показали мне, что jQuery ajax будет загружаться в мои переменные, когда пользователь запускает событие "onchange" окна выбора после того, как страница уже загружена, но данные не будут передавать переменные при первой загрузке страницы. Но я не хотел запускать какой-либо аякс на моем событии "onchange" ; Я хотел, чтобы переменные, подаваемые с данными ajax на загрузку страницы, обрабатывали работу. Эти переменные используются для изменения данных "на лету", когда пользователь запускает событие "onchange" . Таким образом, нет лага /ajax, когда пользователь взаимодействует с формой; данные доступны после загрузки страницы.
Я пробовал много, много и много разных методов, но в конце концов, мне нужен был код в этом потоке stackoverflow: JQuery - сохранение ответа ajax в глобальной переменной
Я использовал ответ Чарльза Гильберта. Используя его ответ, я могу получить данные в своих переменных, даже когда моя страница загружается.
Вот пример рабочего script - надеюсь, что это кому-то поможет!
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
<script>
my_var=$('#hidden').load('new.html');
setTimeout(function(){
my_var=my_var.html();
alert(my_var);
}, 500);
</script>