1

jquery uiダイアログにロードしているHtmlページがあります。ページのオンロード処理のために、静的にロードされたhtmlにセッションIDを挿入する必要があります。私の最初の考えは、.Data() を使用してそのように var を追加することでしたが、.Load(page.html) 呼び出しでは可能だとは思いませんか?

だから私はこれをさまざまな方法でやろうとしましたが、ここに要点があります:

<div id="cs0" title ="Add/Edit Licence periods"></div>
$('#cs0').hide();

//load the page into the the div
$('#cs0').load("/Periods.html");

//edit inner html of one of the divs in the loaded page
$('#cs0').innerHTML.getElementById("MyDiv").innerHTML = sessionid;

$('#il0').click(function () {
    $('#cs0').dialog({
        autoOpen: true,
        maxWidth: 1000,
        maxHeight: 800,
        width: 700,
        height: 300,
        modal: true,
    });
});

私もデータを使用しようとしましたが、これを機能させることができません:(何か考えはありますか?

4

3 に答える 3

1

innerHTMLロードされた HTML ファイルのを取得するには、次を使用します。

$('#cs0')[0].innerHTML;

ただし、それは明らかにやりたいことではありません。あなたがしたい:

$('#cs0').find("#MyDiv").html(sessionid);

load()これは、データがそこにあることがわかるように、すべてメソッドのコールバック内に確実に配置する必要があります。

$('#cs0').load('/Periods.html', function() {
    $(this).find("#MyDiv").html(sessionid);
});

jsFiddle: マークアップを想定した同様の状況

于 2013-05-22T14:05:07.137 に答える
1

でコールバックを使用する必要があります.load("/Periods.html");

そのコールバックは、

$('#cs0').innerHTML.getElementById("MyDiv").innerHTML = sessionid;

私はこれをテストしませんでしたが、次のようになるはずです

$('#cs0').load('/Periods.html', function() {
   $('#cs0').innerHTML.getElementById("MyDiv").innerHTML = sessionid;
});

参照

コールバックがないと、.load() は非同期で実行されます。つまり、次のコード チャックに進む前に、ページをロードするまで待機しません。したがって、そこに何があるかわかりません。

于 2013-05-22T14:06:03.693 に答える