这是我的动作脚本
action.js
function showDistrict() { //alert("hello");
$.ajax({
url: 'dialog_applet.jsp#dialog-modal-district',
success: function(msg) {
document.getElementById("dialog-content-district").innerHTML = msg;
}
});
$(function() {
$("#dialog:ui-dialog").dialog("destroy");
$("#dialog-content-district").dialog({
height: 300,
width: 350,
modal: true
});
});
// alert("hello1");
}
function showCity() { //alert("hello");
$.ajax({
url: 'dialog_applet.jsp#dialog-modal-city',
success: function(msg) {
document.getElementById("dialog-content-city").innerHTML = msg;
}
});
$(function() {
$("#dialog:ui-dialog").dialog("destroy");
$("#dialog-content-city").dialog({
height: 300,
width: 350,
modal: true
});
});
// alert("hello1");
}
这是我的内容脚本,位于 dialog_applet.jsp
内<div id="dialog-modal-district">
dialog-modal-district is here
</div>
<div id="dialog-modal-city">
dialog-modal-city is here
/applet>
随叫随到任何一项功能 showDistrict()或 showCity()。它显示了<div>
的内容。但是,我想检索已被调用的特定<div>
内容。我的意思是打电话给 showDistrict ,它只会显示对话框模式区在这里,但它显示对话框 - 模式 - 区域在这里对话框 - 莫代尔城市在这里
任何帮助表示赞赏!! 提前致谢。 !!
答案 0 :(得分:1)
如果我正确地提出了你的问题,我相信函数showCity()
的调用,你将获得ajax repsonse作为两个div的内部内容,即
dialog-modal-district和dialog-modal-city。这是因为您只是加载了对话框dialog_applet.jsp#dialog-modal-city,它将返回dialog_applet.jsp页面的全部内容,而不仅仅是#dialog-modal-city div内容。
您可以将div名称作为参数和URL一起传递,具体取决于您传递的URL,您可以生成ajax响应。
答案 1 :(得分:0)
我现在看到的是什么问题。
不幸的是,使用网址dialog_applet.jsp#dialog-modal-district
将完全加载jsp页面的内容,而不仅仅是您指定的片段。
你有两种选择来实现你想要的目标。
自行提取您要插入对话框的实际内容。 ajax请求将加载完整的jsp页面,使用.find()方法,您可以选择您感兴趣的部分,只将其附加到对话框中:
success: function(msg) {
// "msg" is the full jsp page
$(msg)
// select the part you want
.find('#dialog-modal-district')
// append it to your dialog
.appendTo($("#dialog-content-district"));
}
使用jQuery中的.load() 方法。它的作用是从指定的URL加载内容,并允许使用与您尝试使用的URL语法类似的url语法自动加载文档片段:
$("#dialog-content-district")
.load('dialog_applet.jsp #dialog-modal-district');
请注意jsp页面和ID选择器之间的空白区域,这对于保留它很重要,否则它将无法正常工作。