1

我有一个要加载到 jquery ui 对话框中的 Html 页面,我需要将会话 ID 插入到静态加载的 html 中以进行页面加载处理。我的第一个想法是使用 .Data() 并以这种方式添加 var 但我认为在 .Load(page.html) 调用中不可能?

所以我尝试了很多不同的方法,但这里是 gyst:

<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

只要它不是内容中的 iframe,您就可以这样做:

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

请记住 find 函数需要一个选择器,因此MyDiv显然无效。您需要一个适当的选择器,例如类或 id。

于 2013-05-22T14:03:51.577 回答
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 回答