使用的环境 jQuery JSP
使用场景:写项目时,一个需求需要在子页面通过jQuery往父页面添加元素,这个需要在子页面获取父页面的对象进行操作
原始需求:父页面是图1-1,点击上传图片会打开一个模态窗口子页面(图1-3),当用户在子页面(图1-3)选择文件点击上传完成后,其父页面(图1-1)不再展示,需要展示成图1-2的样式,
图1-1
图1-2
图1-3
子页面jQuery代码
//enclosureId是父页面需要改变样式的盒子ID,parent._dialogArguments.parent.document暂时不知道什么用,只是网上搜到了
$('#' + enclosureId, parent._dialogArguments.parent.document).children().remove();
$('#'+ enclosureId, parent._dialogArguments.parent.document).append(`<a href=\"/file/fileUpload.action?act=downloadfile&path=\${jsondata.file_url}&fileName=\${jsondata.origin_name}\">\${jsondata.origin_name}</a>`);
$('#'+ enclosureId, parent._dialogArguments.parent.document).append(`<a id=\"\${enclosureId}_btn\" onclick=\"deleteloadFile('\${jsondata.file_id}','\${params.mat_type}','\${enclosureId}')\"></a>`);
$('#'+enclosureId + '_btn', parent._dialogArguments.parent.document).linkbutton({
iconCls: 'icon-cancel',
plain:true,
});
parent._dialogArguments.parent.document这个的深层意义暂时因能力有限,不清楚,先记录下来,后续再补,其他有高深见解 的可以说
也许会有其他人想说这个需求可以在子页面刷新父页面会更简单,但是这种方式太暴力,假如在父页面有你已经填好的数据,刷新页面就全部没有了,所以我就想到了这种做法
感觉有用的话 点个赞再走吧