JQueryロードから変数に結果を挿入する必要があります。
ページajax.htmlのid testを持つ要素のコンテンツ。
$('#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
代わりに。
例えば。
$.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
});
このメッセージは、jQueryのajaxメソッドからHTML要素ではなく変数にデータを詰め込む際の助けを求めるすべてのスタックオーバーフロースレッドに投稿しています。ようやく解決策を見つけました。これで苦労している人と共有したいだけです。
私の問題は、jQuery ajaxの結果をイベントの "document.ready"ステージで変数に取り込むのに本当に苦労していたことでした。
私のテストでは、ページが既に読み込まれた後にユーザーが選択ボックスの「onchange」イベントをトリガーしたときにjQueryのajaxが変数に読み込まれるが、ページが最初に読み込まれたときにデータが変数にフィードされないことがわかりました。しかし、「onchange」イベントでajaxをトリガーしたくありませんでした。 variablesに、ページの読み込み時にajaxデータを入力して、作業を処理する必要がありました。 variablesは、ユーザーが「onchange」イベントをトリガーしたときにその場でデータを変更するために使用されます。このようにして、ユーザーがフォームを操作している間はラグ/アヤックスは発生しません。ページが読み込まれると、データが利用可能になります。
私は数多くのさまざまな方法を試しましたが、最終的に、必要なコードはこの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
は単なるショートカットです。
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>