web-dev-qa-db-ja.com

変数へのjQueryロード

JQueryロードから変数に結果を挿入する必要があります。

ページajax.htmlのid testを持つ要素のコンテンツ。

$('#result').load('ajax.html #test');
18
honzahommer
$(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/

6
MarioRicalde

jQuery.get 代わりに。

例えば。

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

上記とほぼ同じですが、より簡単です:

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

このメッセージは、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");
4
CityPickle

試してみてください $.ajax$.loadは単なるショートカットです。

3
Alin Purcaru

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
});
1
Taras Pukhliar
$('#submit').click(function(){ var taval = $("#message").val();
$("#showcomment").load('comments.php', {commentval:taval}) });
1
danish

setTimeoutを使用

<script> 
    my_var=$('#hidden').load('new.html');
    setTimeout(function(){
        my_var=my_var.html();
        alert(my_var);
    }, 500);
</script>
0
Vitalicus